日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

268 missing number

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 268 missing number 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:給定一個包含n個不同數字的數組,從0開始,例如0,1,2,…n。找到數組中缺了那個數字。例如輸入nums=[0,1,3],輸出2。
思路:高斯 從0到n的和為sum=(1+n)*n/2。只要計算數組的和與sum的差是多少就可以了。

public int missingNumber(int[] nums) {int n = nums.length;int ssum = (1+n)*n/2;int sum = 0;for(int i=0;i<nums.length;i++){sum += nums[i];}return ssum-sum;}

 收獲:
1 據說可以用位運算。我想數數1的個數。思路不通。 根據 a^b^b=a,對同一個數進行兩次異或,或留下原來的數。同時對數組的小標、數組中的元素的值進行異或。留下的元素就是丟失的元素。
public int missingNumber(int[] nums) {
int xor = nums.length;
for(int i=0;i

public int missingNumber(int[] nums) {Arrays.sort(nums);int left = 0;int right = nums.length;while(left<right){int mid = (left+right)/2;if(nums[mid]>mid) right = mid;elseleft = mid +1;}return left;}

參考資料
1 問題
2 討論

總結

以上是生活随笔為你收集整理的268 missing number的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。