wordpress 獲取根目錄上海seo網(wǎng)站推廣公司
兩數(shù)之和
- 題目
- 思路
- C++代碼
題目
思路
根據(jù)題目要求,元素不能重復且不需要排序,我們這里使用哈希表unordered_map。注意題目說了只對應一種答案。
所以我們在循環(huán)中,使用目標值減去當前循環(huán)的nums[i],得到差值,如果我們在map中能夠找到這個差值,就說明存在兩個整數(shù)的和為目標值。
如果沒有找到,就將當前循環(huán)的nums[i]以及下標i放入map中,以便后續(xù)查找差值。
C++代碼
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> map;for (int i = 0; i < nums.size(); i++) {//在map中找差值auto iter = map.find(target - nums[i]);if (iter != map.end()) {//找到即返回兩個下標return {iter->second, i};}//沒找到將當前的值和下標插入map中map.insert(pair<int, int>(nums[i], i));}return {};}
};