C++でLeetCodeの「Two Sum」問題を解く
## Answer (Brute Force)
```
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i < nums.size() - 1; i++) {
for (int j = i + 1; j < nums.size(); j++) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
return {};
}
};
```
この問題を解決するためには、nums配列の各要素の組を合計する必要があります。
例えば
nums = [1, 2, 3, 4]
target=5
1 + 2 = 3;
2 + 3 = 5;
3 + 4 = 7;
2重のforループを使用する必要があります。
最初のループは、nums配列の最後から2番目の要素まで繰り返し処理します。これは、2つの要素を合計する必要があるため、最後の要素は最初のループに含める必要がないためです。
2回目のループは、同じ組み合わせを2回繰り返さないように、i + 1の位置から開始します。
最後に、この2つの要素の和がtarget引数に等しい場合に、2つの要素のインデックスをvector<int>の形で返します。
return {i, j}という文では、{i, j}がiとjの要素を含むvector<int>を作成します。