Leecode 268. 丢失的数字——Leecode每日一题系列
今天是堅持每日一題打卡的第十一天
題目鏈接:https://leetcode-cn.com/problems/missing-number//
題解匯總:https://zhanglong.blog.csdn.net/article/details/121071779
題目描述
給定一個包含 [0, n] 中 n 個數(shù)的數(shù)組 nums ,找出 [0, n] 這個范圍內(nèi)沒有出現(xiàn)在數(shù)組中的那個數(shù)。
示例 1:
輸入:nums = [3,0,1]
輸出:2
解釋:n = 3,因為有 3 個數(shù)字,所以所有的數(shù)字都在范圍 [0,3] 內(nèi)。2 是丟失的數(shù)字,因為它沒有出現(xiàn)在 nums 中。
示例 2:
輸入:nums = [0,1]
輸出:2
解釋:n = 2,因為有 2 個數(shù)字,所以所有的數(shù)字都在范圍 [0,2] 內(nèi)。2 是丟失的數(shù)字,因為它沒有出現(xiàn)在 nums 中。
示例 3:
輸入:nums = [9,6,4,2,3,5,7,0,1]
輸出:8
解釋:n = 9,因為有 9 個數(shù)字,所以所有的數(shù)字都在范圍 [0,9] 內(nèi)。8 是丟失的數(shù)字,因為它沒有出現(xiàn)在 nums 中。
示例 4:
輸入:nums = [0]
輸出:1
解釋:n = 1,因為有 1 個數(shù)字,所以所有的數(shù)字都在范圍 [0,1] 內(nèi)。1 是丟失的數(shù)字,因為它沒有出現(xiàn)在 nums 中。
提示:
n == nums.length
1 <= n <= 104
0 <= nums[i] <= n
nums 中的所有數(shù)字都 獨一無二
本題有多種思路和解法,這里列舉兩種比較巧妙的。
思路1:高斯定理
class Solution { public:int missingNumber(vector<int>& nums) {int len = nums.size(); int sum = (len * (len + 1)) / 2;for(auto i : nums) sum -= i;return sum;} };思路2:異或
異或的應(yīng)用場景多為求缺失的數(shù)字或多出來的數(shù)組,其原理類似,借助了下面三個性質(zhì)
???——鍛煉發(fā)現(xiàn)事物統(tǒng)一性和功能性的能力,這樣會使代碼簡潔、干凈并且功能強大。
總結(jié)
以上是生活随笔為你收集整理的Leecode 268. 丢失的数字——Leecode每日一题系列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leecode 1218. 最长定差子序
- 下一篇: 12行代码AC-Leecode 598.