网易笔试(排序整除4)本地可以通过举例 提交却0%

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			String res = "";
			int groupNum = in.nextInt();
			while(groupNum>0){
				int len = in.nextInt();
				int[] buf = new int[len];
				int j=0;
				while(j<len){
					buf[j++] = in.nextInt();
				}
				res += isLegal(buf) + "@";
				groupNum--;
			}
			String reString = res.substring(0, res.length()-1);
			System.out.print(reString.replaceAll("@", "\n"));
		}
	}
	
	private static String isLegal(int[] buf){
		int len = buf.length;
		boolean[] flags = new boolean[len];
		boolean flag = false;
		int cur = 0;
		for(int i=0; i<len-1; i++){
			flag = false;
			flags[cur] = true;
			for(int j=0; j<len; j++){
				if ((buf[j] * buf[cur] % 4 ==0) && (!flags[j])) {
					cur = j;
					flag = true;
					break;
				}
			}
			if (!flag) {
				return "No";
			}
		}
		return "Yes";
	}
}


全部评论
我是统计4的倍数和2的倍数,判断一下就可以过了
点赞 回复 分享
发布于 2017-09-09 17:08
感觉是超时了,我也是
点赞 回复 分享
发布于 2017-09-09 17:05
试试2 1 4 2 = =我也跪了
点赞 回复 分享
发布于 2017-09-09 17:06
+1
点赞 回复 分享
发布于 2017-09-09 17:08
这个题好像比较简单,我就只做出了这道。。。 其实就输入的时候统计能整除4的数字的个数和奇数的个数,如果前者小于后者就不能,否则就能。
点赞 回复 分享
发布于 2017-09-09 17:08
有情况没考虑到吧,如楼上的用例。两个2的倍数放在一起也是符合要求的。
点赞 回复 分享
发布于 2017-09-09 17:09
我的做法是统计被4整除的个数a4和被2整除的个数a2。假如n为奇数 (2*a4+a2)>= (n-1) 则满足。 假如n为偶数(2*a4+a2)>= n满足 ;同时n==1时,满足。蛋疼的是做的时候输出的是YES和NO(后面发现输出Yes, No,浪费了好长时间),提交后就一直0%。改后通过了。
点赞 回复 分享
发布于 2017-09-09 17:13

相关推荐

牛客鼠:校友你这简历基本无敌了,春招刷刷题去冲大厂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务