http://www.geeksforgeeks.org/find-the-missing-number/
1. use sum formula, O(n), O(1)
2. use XOR, O(n), O(1)
3. use counting sort, O(n), O(1), changing the array
4. use negtive, O(n), O(1), chaning the array
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <queue> 5 #include <stack> 6 #include <string> 7 #include <fstream> 8 #include <map> 9 using namespace std; 10 11 int missing(int arr[], int n) { 12 for (int i = 0; i < n; i++) { 13 if (abs(arr[i]) > n) continue; 14 arr[abs(arr[i])-1] = -arr[abs(arr[i])-1]; 15 } 16 for (int i = 0; i < n; i++) { 17 if (arr[i] > 0) return i + 1; 18 } 19 } 20 21 int main() { 22 int arr[5] = {5, 4, 6, 1, 2}; 23 cout << missing(arr, 5) << endl; 24 return 0; 25 }