京东赛格网第一题AC,第二题有思路但是没时间了,欢迎讨论

public static void test1() {
		Scanner sc =new Scanner(System.in);
		int n= sc.nextInt();
		int a[] =new int[n];
		for(int i=0;i<n;i++) {
			a[i] = sc.nextInt();
		}
		if(n==1)
			System.out.println(1);
		int max =a[0];
		int count =1;
		int j=0;
		for(int i=1;i<n;i++) {
			if(a[i]>=max) {
				for(j=i+1;j<n;j++) {
					if(a[j]<max) {
						break;
					}
				}
				if(j==n) {
					count++;
				}
				max=a[i];
			}
		}
		System.out.println(count);
	}
第一题思路,就是顺序扫描,取a[0]作为参考值,从下标1开始遍历,如果a[i]都比当前参考值小,肯定需要和当前参考值分到一组,直接跳过。如果a[i]比当前参考值大,则重当前位置向后面遍历,如果i后面的数都比参考值大,则计数count+1,然后更新当前最大值。直至结束,输出count;(整体思路参照快速排序的单边循环法)
第二题思路,很像一个拓扑排序,但其实不是,比拓扑排序结构简单,大概能想到的就是先把男女关系存到一个数组里面,然后对关系条数做一个从大到小排序,再每次由高到底清除关系条数,直至结束,并输出。这个代码没写,还在想数据该怎么存。
#京东##笔试题目#
全部评论

相关推荐

4 3 评论
分享
牛客网
牛客企业服务