滴滴 编程题 xor以及 235 丑数 ac答案

//第一题xor ,往前找,不知道对不对,反正ac了,ac了也不一定能面试^_^

import java.util.Scanner;
public class xor {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int num = sc.nextInt();
			int[] arr = new int[num];
			for (int i = 0; i < num; i++) {
				arr[i] = sc.nextInt();
			}
			int count = 0;
			int[] flag = new int[num];
			for (int i = 0; i < num; i++) {
				if (arr[i] == 0) {
					flag[i] = -1;
					count++;
				} else {				
					int temp = arr[i];
					for (int j = i-1; j>=0; j--) {
						if (flag[j] == -1) {
							break;
						}
						if ((temp ^ arr[j]) == 0) {
							flag[i] = -1;
							count++;
							break;
						} else {
							temp = temp ^ arr[j];
						}
					}
				}
			}
			System.out.println(count);
		}
	}
}
//第二题 2 3 5 因子题 打表 测试用例只有10000以内的数
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public final class ugly {
	public static void main(String[] args) {
		Scanner sc =new Scanner(System.in);
		Set <Long> s =new  TreeSet<Long>();
		int max =10000;
		while(sc.hasNext())
		{
		    int num =sc.nextInt();
			for(int i =1;i<max;i*=2)
			{		
				for(int j=1;i*j<max;j*=3)
				{
					for(int k=1;k*i*j<max;k*=5)
					{
						s.add((long)i*j*k);
					}
				}
			}
			s.add((long)1);
			int count =1;
			for(Long l:s)
			{   if(count ==num)
			{
				System.out.println(l);
				break;
			}
				count++;			
			}		
		}
	}
}

#滴滴##Java工程师#
全部评论
第一题思路一样,c++写的只过了90%。。。
点赞 回复 分享
发布于 2017-09-10 18:47
楼主,为什么判断a[i] == 0的时候,就把count + 1呢?
点赞 回复 分享
发布于 2017-09-10 18:34
吐血
点赞 回复 分享
发布于 2017-09-10 17:10
哎呀,早知道第一题我也往前找了,我是往后找,然后用一个map来保存对应的坐标。
点赞 回复 分享
发布于 2017-09-10 17:09
第二题做的这么暴力么
点赞 回复 分享
发布于 2017-09-10 17:09
早发五分钟
点赞 回复 分享
发布于 2017-09-10 17:04
**
点赞 回复 分享
发布于 2017-09-10 17:03

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务