网易2018校招笔试题-数组能不能满足重排列后任意相邻的元素积都是4的倍数

今天看了一下网易最新的校招笔试题:

小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}。牛博士给小易出了一个难题:
    
对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数。
     小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。

代码如下:

 1 import java.util.Scanner;
 2
 3 /**
 4  * Created by jy on 2017/9/9.
 5  */
 6 public class fourBeiShu {
 7     public static boolean isRequired(int length, int[] a) {
 8         int jiShu = 0;
 9         int four = 0;
10         int ouShu = 0;
11         for (int i = 0; i <= length - 1; i++) {
12             //不符合要求
13             if (a[i] <= 0) {
14                 return false;
15             }
16             //奇数个数
17             if (a[i] % 2 == 1) {
18                 jiShu++;
19             }
20             //只是二的倍数个数
21             if (a[i] % 2 == 0 && a[i] % 4 != 0) {
22                 ouShu++;
23             }
24             //4的倍数
25             if (a[i] % 4 == 0) {
26                 four++;
27
28             }
29         }
30         //4的倍数大于数组长度的一半-1,可以满足a[i]和a[i+1]中必定有一个是4的倍数,这样漏掉了全是偶数的情况,如2 2 6
31         if (four >= length - four - 1) {
32             return true;
33         }
34         //4的倍数的个数必须大于等于奇数个数(如果有奇数的话),同时,偶数个数必须至少2个,1 3 5 4 4 4 2 2 2 2 2 2 2 2 2
35         if ((four >= jiShu) && (ouShu >= 2)) {
36             return true;
37         }
38
39         return false;
40     }
41
42     public static void main(String[] args) {
43         Scanner in = new Scanner(System.in);
44         int num = in.nextInt();
45         int n;
46         int[] a;
47         for (int i = 0; i < num; i++) {
48             n = in.nextInt();
49             a = new int[n];
50             for (int j = 0; j < n; j++) {
51                 a[j] = in.nextInt();
52             }
53             boolean b = isRequired(n, a);
54             if (b) {
55                 System.out.println("Yes");
56             } else {
57                 System.out.println("No");
58             }
59         }
60     }
61 }
时间: 2024-12-15 06:49:20

网易2018校招笔试题-数组能不能满足重排列后任意相邻的元素积都是4的倍数的相关文章

天上掉馅饼--移动研究院2018校招笔试题

题目: 天上掉馅饼 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 131072KB:其他语言 655360KB 题目描述: 大家都知道"天上不会掉馅饼"这句话,但是有一天,小明在回学校的路上,天上还真掉起了馅饼.小明的人品实在有点好,这馅饼会掉在小明身边10米的范围内.馅饼掉在地上显然就不能吃了,所以小明马上拿起他的背包去接.但是,小明是个技术宅,运动方面实在不太行,每秒钟只有在移动不超过1米的范围内接住馅饼.这条小路的图所示如下: 现在,我

DP - 2016网易杭研笔试题A

2016网易杭研笔试题A Problem's Link ---------------------------------------------------------------------------- Mean: 有一个边长为n的立方体,内部的每一个小立方体内有一个数字.如果取了当前这个小立方体,则小立方体的: 1.上下相邻两层将会消失; 2.前后相邻两列将会消失; 3.左右相邻两个将会消失; 找出一种取法,使得取到的数的sum最大,输出sum. analyse: 现场面试时挂在这题上了

2015年阿里巴巴校招笔试题

校招找工作的同学,可以看看,非常有帮助! 推荐: http://gointernetgo.com/textinterview/bishi-2015-alibba [产品经理]阿里巴巴2015校园招聘笔试题 [研发工程师]阿里巴巴2015校园招聘笔试题 [研发工程师]阿里巴巴2015校园招聘笔试题2 [国际安全运营专员]阿里巴巴2015校园招聘笔试题1 [产品运营]阿里巴巴2015校园招聘笔试题1 [前端开发工程师]阿里巴巴2015校园招聘笔试题1 [前端开发工程师]阿里巴巴2015校园招聘笔试题

兆易创新2016年9月校招笔试题_IC设计/验证

还有器件岗位的笔试题: 1.CMOS中哪些制造步骤中用到了离子注入,需要注意哪些?2.有哪些薄膜制备方法?各有什么优缺点?3.COMS的制作步骤,简要叙述.4.载流子的输运方式有哪些,简要叙述.5.半导体中缺陷种类,杂质的类型,缺陷杂质的危害,如何避免杂质缺陷.6.为何固体有超导体,导体,半导体,绝缘体?7.缓变PN结和突变PN结区别,如何制作,有何应用?8.CMOS的IV特性曲线,各个阶段的意义,如何让器件有效工作?9.质量测试中的加速失效作用.10.氧化层的击穿过程,如何避免击穿?附加题:N

2018 CVTE 前端校招笔试题整理

昨天晚上(7.20)做了CVTE的前端笔试,总共三十道题,28道多选题,2道编程题 .做完了之后觉得自己基础还是不够扎实,故在此整理出答案,让自己能从中得到收获,同时给日后的同学一些参考. 首先说一下两道肥肠简单的编程题: 1.请实现这样一个函数,输入参数为一个长度为2n的整数数组,以两个整数一组的方式将数据分组,并使每组数组最小值相加为最大,输出这个最大值. 输入[1,4,3, 2],输出为4输入[1,5,7,9, 4, 12],输出为15 思路:把数组按大小排序然后相邻两项分为一组,取每组较

网易2017年校招笔试题 最大的奇约数

题目: 定义函数f(x)为x的最大奇数约数,x为正整数,例如f(44) = 11. 现在给出一个N,需要求出f(1) + f(2) + f(3) + ... + f(N) 例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 7 = 21. 分析: 奇数的最大约数是自身, 偶数的最大约数是是除去所有偶因子之后的那个奇数.所以直观的思路就是挨个遍历一遍加起来. 代码: 1 #include <i

2017美团&amp;网易&amp;360部分笔试题

一.美团笔试 问答题: 1.JavaScript把一个参数从页面A传递给页面B,进行某些操作,然后由页面B回传给页面A 2.各种排序算法的时间复杂度:冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序. 参考:http://blog.chinaunix.net/uid-25906157-id-3318529.html 编程题: 找出两个有序数组的公共元素,例:有序数组[3, 5, 7, 8, 10, 12]和有序数组[15, 10, 8, 7, 4, 3, 1]的公共元素为(8, 10)

互联网校招笔试题分享

Java 一些知识点 Object 有哪些方法 public 方法:getClass.equals(和==之间的区别).hashCode.toString.wait.notify protected 方法:clone.finalize private 方法:registerNatives,该方法作用是将不同平台C/C++实现的方法映射到Java中的native方法 public class Object { private static native void registerNatives()

微软2017校招笔试题2 composition

题目 Alice writes an English composition with a length of N characters. However, her teacher requires that M illegal pairs of characters cannot be adjacent, and if 'ab' cannot be adjacent, 'ba' cannot be adjacent either. In order to meet the requiremen