268. Missing Number(java)
来源:互联网 发布:类似快快游戏的软件 编辑:程序博客网 时间:2024/05/21 13:39
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
给定数组包含n个独立的数字(从1到n),找到数组中缺失的那个元素。
方法一:遍历数组所有元素做累加得到一个和,让完整的0到n的和(高斯公式)减去这个和,就得到了缺失的元素。
public class Solution { public int missingNumber(int[] nums) { int sum=0; int n=nums.length; for(int i=0;i<nums.length;i++){ sum+=nums[i]; } return (n+1)*n/2-sum; }}
方法二:借鉴了方法一的思想,但是分别计算了i与索引i处的差值,累加得到的差值就是缺失的数字。防止和值太大超出int范围。
public class Solution { public int missingNumber(int[] nums) { int ret=nums.length; for(int i=0;i<nums.length;i++){ ret+=(i-nums[i]); } return ret; }}
方法三:利用hash表来存储。
方法四:利用异或。让0到n(即nums.length)和数组中的所有数进行异或运算,最后得到的结果就是缺失的数。
public class Solution { public int missingNumber(int[] nums) { int res=nums.length; for(int i=0;i<nums.length;i++){ res=res^nums[i]^i; } return res; }}
阅读全文
0 0
- 268. Missing Number(java)
- 268. Missing Number(Java)
- leetcode-java-268. Missing Number
- LeetCode-268. Missing Number (Java)
- leetcode:268. Missing Number(Java)解答
- 【Leetcode】:268. Missing Number 问题 in JAVA
- (java)Missing Number
- [leetcode] 268.Missing Number
- 【leetcode】268. Missing Number
- [leetcode] 268. Missing Number
- 268. Missing Number
- Leetcode 268. Missing Number
- 268. Missing Number LeetCode
- LeetCode 268. Missing Number
- 268. Missing Number
- 【LeetCode】268. Missing Number
- 268. Missing Number
- [LeetCode]268. Missing Number
- Unity3D服务器端使用PhysX计算物理
- Hadoop系列--Hadoop基本架构之HDFS架构
- C++学习(3)
- ramdisk.img system.img userdata.img 分析
- 数据结构小结——顺序表(柔性数组版 下)
- 268. Missing Number(java)
- 多个List合并去除list中对象的某个属性值相同的对象
- C++学习(4)
- 【SHOI 2002】百事世界杯之旅 (BSOI4841)
- python实现寻找最长回文子序列
- Keras运行prisma手记(Windows)
- Binary String Matching
- ButterKnife源码初步探秘
- 学习thinkphp