LeetCode:尋找丟失的數字
給定一個包含[0,n]中n個數的陣列nums,找出[0,n]這個範圍內沒有出現在陣列中
的那個數字.
示例 1:
Input:nums=[3,0,1]
Output:2
示例 2:
Input:nums=[0,1]
Output:2
因為有2個數字,所有數字都在[0,2]之間內.
示例 3:
Input:nums=[9,6,4,2,3,1,5,7]
Output:8
解題思路:
方法1
利用等差數列求和公式求出總和,然後與陣列的總和做差.
方法2
位運算
通過異或進行,a^a=0,a^0=a
#include <iostream>
#include <vector>
using namespace std;
class Solution{
public:
int missingnumber(vector<int>& nums){
if(nums.empty())
return -1;
auto sum=nums.size()*(nums.size()+1)/2;
for(auto& i:nums)
sum-=i;
return sum;
}
int missingornumber(vector<int>& nums){
if(nums.empty())
return -1;
auto number=nums.size();
for(auto i=0;i<nums.size();i++)
number^=i^nums[i];
return number;
}
};
int main(int argc,char* argv[]){
vector<int> nums={9,6,4,2,3,1,5,0,7};
cout<<Solution().missingnumber(nums)<<endl;
return 0;
}
相關文章
- leetcode 287 尋找重複的數LeetCode
- LeetCode-162-尋找峰值LeetCode
- LeetCode--尋找兩個有序陣列的中位數(05)LeetCode陣列
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- 【LeetCode Hot 100】4. 尋找兩個正序陣列的中位數LeetCode陣列
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- GET請求的引數丟失
- 如何高效尋找素數
- LeetCode解題(C++)-4. 尋找兩個有序陣列的中位數LeetCodeC++陣列
- 平安證券:尋找數字經濟中的“硬科技”(附下載)
- LeetCode題集-4 - 尋找兩個有序陣列的中位數,圖文並茂,六種解法,萬字講解LeetCode陣列
- 遞推--找數字
- 2837 尋找水仙花數
- LeetCode--584. 尋找使用者推薦人LeetCode
- js浮點數丟失問題JS
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- 【LeetCode】153. 尋找旋轉排序陣列中的最小值LeetCode排序陣列
- LeetCode-153-尋找旋轉排序陣列中的最小值LeetCode排序陣列
- 尋找兩個有序陣列的中位數陣列
- 精盡Spring MVC原始碼分析 - 尋找遺失的 web.xmlSpringMVC原始碼WebXML
- 條件變數如何避免丟失通知變數
- 尋找真凶
- LeetCode 402 移掉K位數字 HERODING的LeetCode之路LeetCode
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- LeetCode - 1365 - 有多少小於當前數字的數字LeetCode
- 尋找陣列中和為定值的兩個數陣列
- 數字中的1——leetcode233LeetCode
- js浮點數儲存精度丟失原理JS
- 尋找有生命的行星
- L1-041 尋找250 分數 10
- 在慢變數中尋找小趨勢變數
- LeetCode題解(面試02.08):尋找連結串列與環的交點(Python)LeetCode面試Python
- 每天一道leetcode142-尋找連結串列中環的入口LeetCode
- LeetCode 389——找不同LeetCode
- LeetCode1365有多少小於當前數字的數字LeetCode
- LeetCode 2544[交替數字和]LeetCode
- 尋找兩個正序陣列中的中位數陣列