LintCode 寻找缺失的数 JAVA
来源:互联网 发布:app交互设计软件 编辑:程序博客网 时间:2024/05/23 19:10
描述:给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。
样例
N = 4
且序列为 [0, 1, 3]
时,缺失的数为2
。
思路:数组是0 - (N-1)个数,先把数组从小到大排序,然后用等差数列求和公式计算出0-N个数的和,最后用求出来的和依次减去数组中的每个数,剩下的数就是缺失的数。注意当数组只有0或者只有1的处理
import java.util.Arrays;
public class Solution { public int findMissing(int[] nums) { Arrays.sort(nums); int n = nums.length; int sum = nums[n - 1] * (n + 1) / 2; if (n == 0) return 0; else if (n == 1) return nums[0] == 0 ? 1 : 0; for (int i = 0; i < nums.length; i++) { sum = sum - nums[i]; } return sum; } }但是有一些数据过不了,比如N+1的数却无法找出,因为不在范围之内,于是我只能改变下顺序。
public class Solution { public int findMissing(int[] nums) { int n = nums.length; if (n == 0) return 0; else if (n == 1) return nums[0] == 0 ? 1 : 0; int sum = 0; for (int i = 0; i < nums.length; i++) sum += nums[i]; return n * (n + 1) / 2 - sum; } }
这样做不仅不用排序,而且能够解决N+1的数
阅读全文
0 0
- LintCode 寻找缺失的数 JAVA
- LintCode-寻找缺失的数
- LintCode 寻找缺失的数
- 寻找缺失的数-LintCode
- LintCode 寻找缺失的数
- LintCode -- 寻找缺失的数
- lintcode ----寻找缺失的数
- lintcode --寻找缺失的数
- 寻找缺失的数-LintCode
- LintCode 寻找缺失的数
- 寻找缺失的数—LintCode
- LintCode --find-the-missing-number(寻找缺失的数)
- 寻找缺失的数
- 寻找缺失的数
- 寻找缺失的数
- 寻找缺失的数
- 寻找缺失的那个数
- LinkCode-寻找缺失的数
- Hadoop组件
- jmeter 录制回放工具badboy 下载安装步骤
- Til the Cows Come Home (Dijkstra)
- ios-画一个图片水印和文字水印
- 小程序form表单提交
- LintCode 寻找缺失的数 JAVA
- webservice第三篇【接口开发webservice、CXF框架使用、IDEA下使用webservice、小例子】
- GFIC 2017-全球MSO运营商峰会拟定议题
- Shell中for循环的几个常用写法
- dynamic_cast 动态强制类型转换
- 96. Unique Binary Search Trees
- Servlet
- HDU-1272-小希的迷宫
- LINUX之交叉编译环境搭建