博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找出1-100中缺失的两个数
阅读量:7236 次
发布时间:2019-06-29

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

题目:

从1-100这100个数中,抽出两个数,将剩下的98个数排序好放到array[98]的数组中,请问如何求出被抽出的两个数?

思路:

排序好,说明数组中的数是从小到大排序的,那说明如果抽出的是99,100,那么前面就是1-98排序,但如果抽出的是50,51,那么说明数组中49,52是排序好的。所以,我们定义一个变量,每次递加,和数组中进行比较,相等说明这个位置的数没有缺失,否者就是缺失的。

 

代码:

public class Main{        public static int[] findMissNum(int[] array) {        if(array==null || array.length==0) {            return null;        }                int len = array.length;        int miss = 100-len;        int[] res = new int[miss];                        int i=1;        int k=0;        for(int j=0; j
0;n--) { res[k++] = m++; } return res; } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98}; int[] res = findMissNum(array); for(int i=0; i

 

进阶题目:

如果给定的数组是乱序的呢?可以根据位置信息和数值一个坑一个坑对应,大于98的就记录,不放到数组中,最后在遍历一遍数组,看那个坑数空的,就是缺少的。

 

转载于:https://www.cnblogs.com/loren-Yang/p/7519316.html

你可能感兴趣的文章
【Java每日一题】20161230
查看>>
DHCP协议工作原理
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Hive使用ORC格式存储离线表
查看>>
Spring工作原理
查看>>
httpd(2.2&2.4)RPM搭建配置定义详解
查看>>
ubuntu下字体
查看>>
linux压缩格式及安装包管理,screen
查看>>
我的友情链接
查看>>
记录linux下通过对limits的设置来优化系统性能
查看>>
Linux下安装无线网卡
查看>>
apache的commons-fileupload中FileItem类和ServletFileUpload
查看>>
列表嵌套元祖排序
查看>>
jquery自动切换tabs选项卡的具体实现
查看>>
使用MDaemon作垃圾邮件过滤网关攻略
查看>>
python脚本判断一个数是否为素数的几种方法
查看>>
Java学习笔记(39)——Java集合11之Stack
查看>>
office 2010打开word文件提示以安全模式打开
查看>>
Microsoft virtual WiFi Miniport Adapter
查看>>