Alibaba SWE 实习岗 笔试题 JAVA
最近参与了一场阿里的软件开发实习岗的笔试,于是想将题目分享一下~
如果有啥更好的想法欢迎交流~
Here We Go!
题目一
小明现在有一个长度为 n 的不递减序列,现在你可以操作任意次(可以不进行操作) ,每一次操作可以让某一个位置上的数增加1,但是每一个位置的数最多只能操作一次,现在想问你通过这个操作,能让新产生的序列中最多有多少个不同的数(重复的数算1个)。
输入描述
每一个文件输入第一行输A一个整数T (1 < T < 1000),代1表有T组测试数据。接下来T组,每一组第一行输入一个整数n (1 < n
< 10^5)。接下来输入n个整数,a[i] (1 ≤ a[i] ≤ 2*n) 代表序列中的每一个元素。数据保证每一个文件内n的总和不超过100000
输出描述
对于每一组测试数据,输出一个答案代表最多有多少个不同的整数。
示例输入
2
6
1 2 2 2 5 6
2
4 4
示例输出
5 2
示例说明
对于样例第一组:序列变为1,2,3,2,5,6,此时不同元素最多
对于样例第二组:将这两个数任意一个数进行处理即可
思路
因为是不递减序列,所以我们可以定义一个set集合,然后开始遍历序列,遍历过程中操作如下:
- 每当遍历一个数,先判断该数是否已在set集合;
- 如果该数在set集合中不存在,那么直接将该数加入set集合;
- 如果该数在set已存在集合中,那么不妨将这个数 +1 后再加入set;
- 遍历完序列后,set集合即为 “最多不同的元素” 的集合,集合容量大小作为返回值即可。
示例代码
public static int maxDiffNum(){// 此处省略输入数据的处理// seq即为非递减序列int[] seq = new int[]{1, 2, 2, 2, 5, 6};// 定义一个hashsetSet<Integer> set = new HashSet<>();for(int num : seq){// 如果该数在set集合中不存在,那么直接将该数加入set集合// 否则将这个数 +1 后再加入setif(!set.contains(num)){set.add(num);}else{set.add(++num);}}// 最后返回set集合的大小return set.size();}
题目二
小明现在有两个数a和b,初始值均为n,现在小明有以下4个操作:
- 将数a变成a - 100,若为负数,则记作0
- 将数a变成a - 75,数b变成b - 25,若为负数,则记作0
- 将数a变成a - 50,数b变成b - 50,若为负数,则记作0
- 将数a变成a - 25,数b变成b - 75,若为负数,则记作0
假设 P(A) 代表数字a先变成0的概率,P(AB) 代表数字a,b同时变成0的概率,P(B) 代表数字b先变成0的概率。小明想知道 P(A) + P(AB)/2 的值是多少
已知每一个操作是独立的且等概率的
输入描述
每一个文件输入第一行输入一个整数T(1 ≤ T ≤ 1000),代表有T组测试数据
接下来T组,每一组第一行输入一个整数n(1 ≤ n ≤10^9),代表两个数字的初始值
输出描述
对于每一组测试数据,输出一个小数代表要求的概率,误差在10^-5均算正确。
示例输入
2
50
100
示例输出
0.62500000
0.71875000
思路
用深搜去遍历所有可能出现的情况,每次递归一个操作:每次遍历的结果可能是以下四种:
- a > 0 且 b > 0;
- a > 0 且 b ≤ 0;
- a ≤ 0 且 b > 0;
- a ≤ 0 且 b ≤ 0;
如果是情况1,则继续深度搜索四个操作;
如果是情况2,则将总的出现的情况+1;
如果是情况3,则将P(A)出现的情况+1;
如果是情况4,则将P(AB)出现的情况+1。
最后计算P(A)出现的情况次数占总次数的比例,以及P(AB)出现的情况次数占总次数的比例,根据题目要求概率相加即可。
示例代码
//初始P(A)和P(AB)的情况都是0public static int pa = 0;public static int pab = 0;public static int psum = 0;public static double computeProbability(int n){computeProbabilityDfs(n, n);double PA = pa;double PAB = pab;double PSUM = psum;return PA / PSUM + PAB / PSUM / 2;} public static void computeProbabilityDfs(int a, int b){if(a < 0 || a == 0 && b > 0){++psum;++pa;}else if((a < 0 || a == 0) && (b < 0 || b == 0)){++psum;++pab;}else if(a > 0 && b > 0){computeProbabilityDfs(a - 100, b);computeProbabilityDfs(a - 75, b - 25);computeProbabilityDfs(a - 50, b - 50);computeProbabilityDfs(a - 25, b - 75);}else{++psum;}}
Alibaba SWE 实习岗 笔试题 JAVA相关推荐
- 华为 SWE 实习岗 笔试题 JAVA
最近又参与了一场华为的软件开发实习岗的笔试,于是想将题目分享一下~ 如果有啥更好的想法欢迎交流~ Here We Go! 题目一 幼儿园老师安排小朋友做游戏,现在需要给 N 个小朋友进行分组,老师让每 ...
- 数据分析师实习岗笔试题(part1)
笔试后记,仅供参考 因为公司说不能泄露笔试题,所以我就加了点润色,但是不影响内容 限时免费:3小时 前言 笔试时间:2020年6月 笔试方式:在线笔试 笔试内容:sql语言.R语言/python.统计 ...
- 美团点评实习生算法岗笔试题 (java) 2020.04.23场
T1 幸运星 题目描述 在观星的时候,一种常用的方式是划出类似于正方形的区域内,确定其中所有星星的坐标. 现在我们在星空(一个无限大的二维平面)上简历坐标系.由于星星很小,我们忽略它的面积,认为每一个 ...
- 华为2018届校招技术岗笔试题及个人解答
前言 昨天(9.13)参加了华为2018届的技术岗笔试,特此总结一下笔试的题目和我个人的解答思路. 笔试题一共是三道编程题,大致是数值反向输出,比较和排序,相对较基础. PS:由于没有截图,所以题目是 ...
- 2021唯品会秋招数据开发岗笔试题
2021唯品会秋招数据开发岗笔试题 题型分布 单选题 多选题 问答题 简答题 由于过了一段时间才写这篇博客,有些题目已经记不清了,同时也没有找到相同的题目,因此只能简单描述,多见谅. 题型分布 单选题 ...
- 腾讯2016春招安全岗笔试题解析
腾讯2016春招安全岗笔试题解析 昨天(4月2日)晚上7:00到9:00做了腾讯春招安全岗的笔试题.下面解析一下: 题目解析 1 在生成随机数前用当前时间设置随机数种子应该是安全的.如果程序用固定的数 ...
- 网易2018实习生招聘笔试题-JAVA开发实习生
网易2018实习生招聘笔试题-JAVA开发实习生 如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100. for(int i=0 ...
- 2019校招硬件岗笔试题(乐鑫科技+比特大陆)
2019校招硬件岗笔试题(乐鑫科技+比特大陆) 都是提前批次的笔试题,乐鑫科技是现场笔试,监考还挺严格的.写一写回忆版的笔试题. 乐鑫考察的比较多,但是都很基础,关于高速电路部分,推荐<信号完整 ...
- 潇洒郎: 去哪儿2021届/2020年开发岗笔试题分享
去哪儿2021届/2020年开发岗笔试题分享 1. 2020年,直播已经成为去哪儿网酒店预售的新武器, 去哪儿网CEO刚哥想从公司的m名员工中挑选n名参与自己的直播,已知m小于100请问一共有多少种选 ...
最新文章
- linux 系统相关服务解释
- Oracle体系结构及备份(十六)——bg-ckpt
- 2020 操作系统第四天复习(知识点总结)
- MyEclipse 14 设置文件特定的打开方式
- JS 构造图片Image对象
- SQLServer UPDATE INNER JOIN、DELETE INNER JOIN
- .NET MVC扩展UrlHelper支持CDN
- vue 组件 全局组件和局部组件component
- Vue3.0 + Ts 项目框架搭建四:配置 Svg-Icon、Icon图标
- javascript设计模式_详解JavaScript的常用设计模式(二)
- 819 c语言程序设计,大连海洋大学2021年考研819高级语言程序设计(C语言)考试大纲...
- 瑞利衰落信道matlab,瑞利衰落信道的matlab仿真-read.doc
- 安装拼音加加时出现问题
- python与java前景分析-Java和Python哪个未来前景好?
- supermap mysql_超图supermap sdx数据库用sql实现空间查询
- Thread yield
- ImportError: cannot import name ‘MobileNetV2‘ from ‘keras.applications‘解决方法
- 杭州金田电磁流量计数据解析之读出累计总量
- unity 调用高德地图手机读取信息定位和周边(AndroidStudio3.1.2版本打包)。
- 中科蓝讯蓝牙: 530X_532X 等音量系统调节