---
tags: leetcode
---
# [268. Missing Number](https://leetcode.com/problems/missing-number/)
---
# My Solution
## The Key Idea for Solving This Coding Question
輸入陣列 `nums` 的長度為 `n` 。且 `nums` 內的元素為 `[0, n]` 間的整數。所以有 `n+1` 個整數要放入 `n` 個位子中,一定會有一個整數無法放入 `nums` 中。題目要我們找出 `[0, n]` 中,沒有被放入 `nums` 的那個整數。
我們可以先用數學公式 ${(1 + n) \cdot n \over 2}$ 求得 `[0, n]` 間所有整數的和 `answer`。然後,遍歷 `nums` ,逐一將 `nums` 中的整數自 `answer` 中減去。只要我們將 `nums` 中的所有元素都走過一遍, `answer` 中最後的值就是沒有被放入 `nums` 中的整數。
## C++ Code
```cpp=
class Solution {
public:
int missingNumber(vector<int> &nums) {
int n = nums.size();
int answer = n * (n + 1) / 2;
for (int i = 0; i < nums.size(); ++i) {
answer -= nums[i];
}
return answer;
}
};
```
## Time Complexity
$O(n)$
$n$ is the length of `nums`.
## Space Complexity
$O(1)$
# Miscellaneous
<!--
# Test Cases
```
[3,0,1]
```
```
[0,1]
```
```
[9,6,4,2,3,5,7,0,1]
```
```
[1]
```
```
[0]
```
-->