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;
}
相關文章
- 【zz】面試題之尋找丟失的數字面試題
- leetcode 287 尋找重複的數LeetCode
- 【.Net】從字串陣列中尋找數字的元素字串陣列
- 缺失的數字;及找數字分析
- ACM 尋找最大數ACM
- LeetCode--尋找兩個有序陣列的中位數(05)LeetCode陣列
- 找數字續;及缺失的數字分析
- LeetCode-162-尋找峰值LeetCode
- 如何高效尋找素數
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- GET請求的引數丟失
- 數字之魅:尋找陣列中的最大值和最小值陣列
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- 2837 尋找水仙花數
- LeetCode解題(C++)-4. 尋找兩個有序陣列的中位數LeetCodeC++陣列
- 【LeetCode Hot 100】4. 尋找兩個正序陣列的中位數LeetCode陣列
- LeetCode題集-4 - 尋找兩個有序陣列的中位數,圖文並茂,六種解法,萬字講解LeetCode陣列
- js浮點數丟失問題JS
- 尋找兩個有序陣列的中位數陣列
- LeetCode--584. 尋找使用者推薦人LeetCode
- 尋找陣列中和為定值的兩個數陣列
- 找數字;及最長等差數列分析
- 條件變數如何避免丟失通知變數
- 在慢變數中尋找小趨勢變數
- L1-041 尋找250 分數 10
- 精盡Spring MVC原始碼分析 - 尋找遺失的 web.xmlSpringMVC原始碼WebXML
- [CareerCup] 5.7 Find Missing Integer 查詢丟失的數
- oracle 小數點前零丟失的問題<轉>Oracle
- 尋找JAVA人材!Java
- 尋找兩個正序陣列中的中位數陣列
- 尋找沒有使用繫結變數的sql語句變數SQL
- 尋找將1~N的整數隨機排列的高效方法隨機
- js浮點數儲存精度丟失原理JS
- Linked List Cycle leetcode II java (尋找連結串列環的入口)LeetCodeJava
- 【演算法】數學之旅,根據素數特徵尋找底數演算法特徵
- 括號匹配;及找數字續分析
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列