Leetcode題解之其他(6)顛倒二進位制位缺失數字
阿新 • • 發佈:2018-12-02
題目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/26/others/69/
題目描述:
給定一個包含 0, 1, 2, ..., n
中 n 個數的序列,找出 0 .. n 中沒有出現在序列中的那個數。
示例 1:
輸入: [3,0,1] 輸出: 2
示例 2:
輸入: [9,6,4,2,3,5,7,0,1] 輸出: 8
說明:
你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?
//自己的硬(sha)核(bi)破解 class Solution { public int missingNumber(int[] nums) { if(nums[0]==0&&nums.length==1){ return 1; } Arrays.sort(nums); if(nums[0]!=0){ return 0; } int res=1; for(int j=0;j<nums.length-1;j++){ if(nums[j+1]-nums[j]>1){ res = nums[j+1]-1; break; }else{ res++; } } return res; } } //大神思路:等差數列求和 減去 原本卻了一個的數列 = 缺少的。 class Solution { public int missingNumber(int[] nums) { int sum=0; int len = nums.length; for(int i=0;i<len;i++){ sum=sum+nums[i]; } int sum2= len*(len+1)/2; int res=sum2 - sum; return res; } }