题目:

从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<len-1; j++) {int dif = array[j+1] - array[j];if(dif==1) {i++;continue;} else {while((dif--)!=1) {i++;res[k++] = i;}i++;}}//末尾的数被抽出了int n=(miss-k);int m=100-n+1;for(;n>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<res.length; i++) {System.out.print(res[i]+" ");}}
}

进阶题目:

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

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

找出1-100中缺失的两个数相关推荐

  1. 编程笔试(解析及代码实现):序列重排之给一个长度为n的序列A,求找出某种排列方式使得相邻两个数的差值之和最大并求出该最大值

    编程笔试(解析及代码实现):序列重排之给一个长度为n的序列A,求找出某种排列方式使得相邻两个数的差值之和最大并求出该最大值 目录 题目描述 代码实现 题目描述 序列重排:给一个长度为n的序列A,求找出 ...

  2. 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

  3. python步骤解析 给定一个整数数组和目标值_给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 例如给定nums = [2,7,11,15],target = 9...

    python解决方案 nums = [1,2,3,4,5,6] #假如这是给定的数组 target = 9 #假如这是给定的目标值 num_list = [] #用来装结果的容器 def run(nu ...

  4. 找出无序数组中最小的k个数(top k问题)

    2019独角兽企业重金招聘Python工程师标准>>> 给定一个无序的整型数组arr,找到其中最小的k个数 该题是互联网面试中十分高频的一道题,如果用普通的排序算法,排序之后自然可以 ...

  5. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...

  6. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...

  7. 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

    我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...

  8. JS实现 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    题目:(JS实现) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 四种方法如下: 方法一:暴力破解法,和值匹配 //暴力 ...

  9. java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...

最新文章

  1. 深度学习中的优化算法串讲
  2. 高倍数泡沫装置PHP_平衡式泡沫比例混合装置 PHP - 压力式比例混合装置 - 武汉鑫澳龙消防设备有限公司...
  3. 代理上网后localhost使用不了,只能使用127.0.0.1解决
  4. erlang rebar 配置mysql_Erlang Rebar 使用指南之四:依赖管理
  5. 《LeetcodeHot100非困难题补录》
  6. mysql集群多管理节点_项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
  7. 计组之存储系统:6、Cache-主存映射方式(全相连映射、直接映射、组相连映射)
  8. Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(三)
  9. Java(TM) platform SE binary 占用cpu过高
  10. 解决SQLServer占用80端口问题
  11. 网络管理与维护作业8
  12. telnet发送socket报文_简单讲解一下Socket网络编程
  13. 游戏筑基开发之函数指针及main函数利用指针传参(C语言)
  14. jquery学习之1.19-小练习3-输入用户名密码时焦点触发和失去焦点
  15. 【路径规划】基于matlab A_star算法机器人动态避障路径规划【含Matlab源码 1033期】
  16. Groovy 教程系列(一)-- Groovy 入门
  17. 傅立叶变换、拉普拉斯变换、Z 变换的联系是什么?为什么要进行这些变换?...
  18. RAID技术全解图解-RAID0、RAID1、RAID5、RAID100
  19. [SSM框架]—Mybatis入门
  20. Latex 论文插入copyright

热门文章

  1. make: warning:  Clock skew detected.  Your build may be incomplete.
  2. 接雨水—leetcode42
  3. iOS Hacker LLDB 和 debugserver 实例调试
  4. 一个人的成功取决于晚上的8点至10点--经典语录必读
  5. UBoot讲解和实践-----------讲解(一)
  6. 内存的静态分配和动态分配的区别【转】
  7. 牛客练习赛34 E little w and Digital Root(数位dp)
  8. new / delete与malloc / free的异同及实现原理
  9. facenet 中心损失函数(center loss)详解(代码分析)含tf.gather() 和 tf.scatter_sub()函数
  10. SCII控制字确切含义