博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网易2018校园招聘编程题真题集合之重排序列
阅读量:4486 次
发布时间:2019-06-08

本文共 1658 字,大约阅读时间需要 5 分钟。

题目描述

小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}。牛博士给小易出了一个难题:对数列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代码

import java.util.Scanner;public class RearrangeSequence {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while (sc.hasNext()) {            int t = sc.nextInt();            for (int i = 0; i < t; i++) {                int n = sc.nextInt();                //表示4的倍数的个数                int cnt4 = 0;                //表示2的倍数的个数                int cnt2 = 0;                //表示其他数                int cnt1 = 0;                for (int j = 0; j < n; j++) {                    int x = sc.nextInt();                    if (x % 4 == 0) {                        cnt4++;                    } else if (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");                    }                }            }        }    }}

 

 
 

 

 

 

转载于:https://www.cnblogs.com/lfeng1205/p/7500311.html

你可能感兴趣的文章
git随笔
查看>>
codeforces 985C. Liebig's Barrels
查看>>
获取URL参数
查看>>
异步数据处理Handler
查看>>
线段树lazy标记??Hdu4902
查看>>
Google Map API 学习四
查看>>
Hibernate入门1
查看>>
filbeat遇到的坑(运行久和文件数据量多时候 )
查看>>
jQuery插件学习笔记
查看>>
知识梳理HTML篇
查看>>
SQL关键字-exists
查看>>
每天一个linux命令(42):kill命令
查看>>
java获取当前路径的几种方法
查看>>
常用的js函数
查看>>
Unity 碰撞检测 OnTriggerEnter 入门
查看>>
利用DFS求联通块个数
查看>>
总结:
查看>>
将文件写到磁盘
查看>>
spring boot 整合redis --sea 方式1
查看>>
Android Http请求方法汇总
查看>>