笔试题一

题目描述:
输入n个数,让你从中选k个数做&运算,即位运算中的与运算,现在从所有方案中,将这k个数&一起的最小值是多少?
输入描述

输入第一行有一个整数T,代表接下来有T组测试数据
对于每一组测试数据第一行输入两个数n和k,代表数的个数以及要选择的个数
接下来n个数,代表每一个数的大小
1<=n<=40
1<=T<=10
1<=a[i]<=2^60

输出描述

对于每组数据输出一行代表所能选取的最小值。

实例1 输入输出实例仅供测试,后台测试数据一般不包含该实例

输入
2
3 2
5 6 7
8 2
238 153 223 247 111 252 253 247
输出
4
9

说明

&运算是将两个数转为二进制对应位置运算,若都是1,结果也为1,否为0.
例如:7&4 转为二进制为:111&100&100,转换为十进制为4,故答案为4

这个题,能力较好的人来说,应该不难,但是对我这个菜鸟来说,可是折腾了好久,主要的难点是对于输入这一块,一直没写对,其它地方的逻辑感觉都是没问题的,真的是欲哭无泪啊,虽然最后写出来了,但是没赶上时间点提交。也是没办法了。虽然后面自己IDEAL上通过了测试数据,但是不保证对,有其它想法的小伙伴们欢迎给我评论。

思路:
首先明确:位运算就是直接对整数的二进制位进行操作
1、按照题目意思写完成输入数据的函数
2、对输入的数据,进行从小到大的排序,从头开始选取k个数进行&运算。最后返回结果即可。
感觉第二步是真的简单,所以这里主要是完成第一步。

Java代码如下

      public void InputData(){Scanner scanner1=new Scanner(System.in);int T = scanner1.nextInt(); //代表有几组测试数据while (T!=0){Scanner scanner=new Scanner(System.in);//输入第一组测试数据//测试数据都只有两个,并且位于同一行,这里使用nextLine方法,得到的是字符串String s = scanner.nextLine();//将输入的字符串转为字符数组以空格隔开String[] testData = s.split(" ");//测试数据第一个数表示数的个数int n=Integer.parseInt(testData[0]);//测试数据第二个数表示从n个数中选取出k个数2int k = Integer.parseInt(testData[1]);//定义一个数组,长度为n,用来存储后面输入的n个数int a[] =new int[n];String s2 = scanner.nextLine();String[] allData = s2.split(" ");for (int i = 0; i < n; i++) {a[i]=Integer.parseInt(allData[i]);}//以上就实现了对第一组测试数据的输入//此时就需要从第一组测试数据中选取出k个数进行&运算int i = minValue(k, a);System.out.println(i);//进行下一组数据的测试T--;}}//求数组中选出k个数&运算的最小值public int minValue(int k,int[] a){Arrays.sort(a); //对数组进行从小到大排序int sum=a[0];for (int i = 1; i < k; i++) {sum=sum & a[i];}return sum;}

不对的地方欢迎指出!

2020阿里巴巴实习笔试题一相关推荐

  1. 2014.3.29阿里巴巴暑期实习笔试题分析

    參考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 以下中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 ...

  2. 2021.4.11 字节跳动实习笔试题---情报解密

    2021.4.11 字节跳动实习笔试题-情报解密 题目内容 题目内容: 给你一个字符串,该字符串中有数字,字母(字母只有大写字母)以及一些其他的字符(例如:%,.等),如果首字母为字母或者数字的话,就 ...

  3. C语言单链表实现FCFS算法,2014腾讯实习笔试题

    2014腾讯实习笔试题 1. 关于二叉树,下面说法正确的是() A. 对于N个节点的二叉树,其高度为nlog2n; B. 一个具有1025个节点的二叉树,其高度范围在11~1025之间 C. 二叉树的 ...

  4. 头条2020届实习生笔试题

    头条2020届实习生笔试题 一卷 编程题: 输入某年某月某日,判断这一天是这一年的第几天? // 判断是否为闰年function isRun(a) {return a % 4 == 0 &&a ...

  5. k个一组翻转链表 哔哩哔哩2020校园招聘笔试题/LeetCode_25(困难)讲解

    目录标题 一.题目信息 二.解题思路 三.代码实现 四.其他精选题目分享 一.题目信息 LeetCode版本 牛客网版本 下面我以牛客网为例写代码 题目需要先输入一组数字代表链表的值,以#代表结尾. ...

  6. 招商银行信用卡2019届实习笔试题

    招商银行信用卡2019届实习笔试题 题目表述:如图 思路:有向图中找回环.(具体方法和原理可以参考相关博客)同时标记那些指向回环的顶点.全部的顶点去掉被标记的顶点,输出就是答案了.完全按照题目中的提示 ...

  7. 小红书2020校招数据分析笔试题卷四 解析

    小红书2020校招数据分析笔试题卷四 解析 单选题 多选题 填空题 简答题 题目来自小红书2020校招数据分析笔试题卷四 单选题 如果在小红书商城中某一商户给一产品定价,如果按照全网最低价500元定价 ...

  8. 记 随手科技2020届实习生笔试题(Java开发工程师)笔试题

    2020届实习生笔试题(Java开发工程师) 一.选择题(共6题,每小题5分,满分30分) 1 2 3 4 5 6 总分 B B A C B C 1.下列排序算法中,初始数据集合对排序性能无影响的是( ...

  9. 育碧Web实习笔试题分享

    育碧的Web实习笔试题分享 笔试题目一共有20道,主要有选择题,简答题以及编程题,但是大部分都是简答题,题干是全英语的,但是大致题意还是能够读懂.考查知识大体涉及JavaScript.HTTP.CSS ...

  10. 网易实习笔试题——炸弹人编程

    目录 网易实习笔试题--炸弹人编程 一.题目要求 二.实现逻辑 1.Enemy类 2.随机生成游戏布局 3.展示游戏布局 4.寻找炸弹人可达区域 5. 放炸弹炸死敌人 6.在可达区域放置两颗炸弹,并且 ...

最新文章

  1. docker nginx 配置负载均衡
  2. 大量POI点展示的一种解决方案
  3. Python字符串的定义与常用操作
  4. html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)
  5. 2021-06-19表单,内嵌框架
  6. python可以处理什么文件_第十五篇 Python之文件处理
  7. JS代码对表格进行新增时无法解析HTML代码的解决方式
  8. revit二次开发——建连续刚构桥(方法1)
  9. php 公众号多图文消息,微信公众号怎么发布号多图文消息?微信公众号发布号多图文消息的方法...
  10. Python语言在人工智能中的优势有哪些?
  11. as_completed和wait源码分析
  12. dmp(dump)转储文件
  13. Java学习指南(15) 链表
  14. 命令提示符 查看已连接Wifi密码(忘记Wifi密码)
  15. linux系统外接硬盘挂载
  16. iframe预览文件
  17. 菜鸟入门:Java语言学习
  18. 微信公众号自定义菜单和推送模板消息
  19. layui表头宽度和表格一致_layui表格如何把表头固定
  20. 手机被偷完整找回方案

热门文章

  1. 前端实现HTML转PDF
  2. 企业微信加好友太频繁怎么办?
  3. 芯片数据分析笔记【01】 | 基因芯片的基本原理
  4. 人工智能 - 语音识别的技术原理是什么
  5. mac 读写 ntfs
  6. java验证码kaptcha_spring整合kaptcha验证码的实现
  7. 好用的轻量级http接口测试工具(替代PostMan)
  8. Detours学习之十二:Detours API用于修改二进制文件的api
  9. 20135202闫佳歆——信息安全系统设计基础第九周学习总结
  10. 记一次hive 报错NoViableAltException(-1@[215:51: ( KW_AS )?])