1 条题解

  • 0
    @ 2024-12-24 9:59:30

    C :

    #include <stdio.h>
    void main()
    {
      int i,a[100],k,count,key,n,j,b[100];
      scanf("%d",&n);
      while(n!=0)
      {
        k=key=0;
        for(i=0;i<n;i++)
          scanf("%d",&a[i]);
        for(i=0;i<n;i++)
        {
    		count=0;
          for(j=i+1;j<n;j++)
          {
            if(a[j]<a[i])
            {b[count]=a[j];
             count++;}
          }
          for(k=0;k<count-1;k++)
          {
            if(b[k]<b[k+1])
            key=1;
          }
        }
        if(key==0)
          printf("Yes\n");
    	else
    		printf("No\n");
         scanf("%d",&n);
      }
    }
    

    C++ :

    #include <stdio.h>
    
    int top;
    
    int Stack(int stack[], int a, int &pre)
    {
    	if (a <= pre)
    	{
    		if (stack[--top] != a)
    		{
    			//printf("%d %d\n", stack[top],a);
    			return 0;
    			
    		}
    		else return 1;
    	}
    	for (int i = pre + 1; i <= a; i++)
    	{
    		stack[top++] = i;
    	}
    	top--;
    	pre = a;
    	return 1;
    }
    
    int main(int argc, char *argv[])
    {
    	int n;
    	int a, stack[105];
    	while (scanf("%d", &n) != EOF)
    	{
    		if(n==0) break;
    		top = 1;
    		stack[0]=0;
    		int pre = 0;
    		int flag = 1;
    		for (int i = 0; i < n; i++)
    		{
    			scanf("%d", &a);
    			if (flag == 1)
    			{
    				flag = Stack(stack, a, pre);
    				/*for (int j=1; j<top; j++ )
    				{
    					printf("%d ",stack[j]);
    				}
    				printf("\n");*/
    			}
    		}
    
    		if (flag == 1)
    		{
    			printf("Yes\n");
    		}else
    			printf("No\n");
    	}
    	
    	return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    import java.util.Stack;
    
    public class Main {
    	public static void main(String[] args) {
    		int n = 0;
    		Scanner in = new Scanner(System.in);
    
    		while ((n = in.nextInt()) != 0) {
    			int a[] = new int[100];
    			for (int i = 0; i < n; i++)
    				a[i] = in.nextInt();
    			Stack s = new Stack();
    			int index = 0;
    			for (int i = 1; i <= n; i++) {
    				s.add(i);
    				while(!s.isEmpty()){
    					if (Integer.parseInt(s.lastElement().toString()) == a[index]) {
    						index++;
    						s.pop();
    					}else break;
    				}
    			}
    
    			if (s.isEmpty())
    				System.out.println("Yes");
    			else
    				System.out.println("No");
    
    		}
    	}
    }
    
    
    • 1

    信息

    ID
    1652
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者