网易2018校园招聘编程题真题集合之重排序列
2017-09-10 10:11
344 查看
题目描述
小易有一个长度为N的正整数数列A={A[1],A[2],A[3]...,A}。牛博士给小易出了一个难题:对数列A进行重新排列,使数列A满足所有的A[i]*A[i+1](1≤i≤N-1)都是4的倍数。小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。
输入描述
输入的第一行为数列的个数t(1≤t≤10),接下来每两行描述一个数列A,第一行为数列长度n(1≤n≤10^5)第二行为n个正整数A[i](1≤A[i]≤10^9)输出描述
对于每个数列输出一行表示是否可以满足牛博士的要求,如果可以输出Yes,否则输出No。思路:
记录能被4整除的个数和能被2整除的个数以及奇数的个数,然后分情况讨论。Java代码
importjava.util.Scanner; publicclassRearrangeSequence{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); while(sc.hasNext()){ intt=sc.nextInt(); for(inti=0;i<t;i++){ intn=sc.nextInt(); //表示4的倍数的个数 intcnt4=0; //表示2的倍数的个数 intcnt2=0; //表示其他数 intcnt1=0; for(intj=0;j<n;j++){ intx=sc.nextInt(); if(x%4==0){ cnt4++; }elseif(x%2==0){ cnt2++; }else{ cnt1++; } } if(cnt2==0){ if(cnt4>=cnt1-1){ System.out.println("Yes"); }else{ System.out.println("No"); } }else{ if(cnt4>=cnt1){ System.out.println("Yes"); }else{ System.out.println("No"); } } } } } }
相关文章推荐
- 网易2018校园招聘编程题真题集合3字符串碎片
- [网易]2018校园招聘编程题真题集合
- 网易2018校园招聘编程题真题集合
- [网易]2018校园招聘编程题真题集合
- 网易2018校园招聘编程题真题集合1魔法币
- 网易2018校园招聘编程题真题集合
- 网易2018校园招聘编程题真题集合 (部分)
- 网易2018校园招聘编程题真题集合2相反数
- 牛客网-网易2018校园招聘编程题真题集合-解题思路及源码
- 网易2018校园招聘编程题真题集合(一)
- 网易2018校园招聘编程题真题-[编程题] 魔法币
- 网易2018校园招聘编程题真题-[编程题] 字符串碎片
- 网易2018校园招聘编程题真题-[编程题] 相反数
- 网易2018校园招聘编程题真题 合唱
- 网易2018校园招聘编程题真题-[编程题] 交错01串
- 网易2018年校园招聘编程题真题(魔法币&&相反数&&字符串碎片&&重排数列)
- 《面试编程题真题合集(一)——网易2018校园招聘真题题解》
- 网易2018校园招聘编程真题之魔法币
- 网易2018校园招聘编程题
- 重排序列(水题) - 网易2018校园招聘研发工程师(有道事业部)笔试卷