最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

力扣:1. 兩數(shù)之和

2023-03-06 21:35 作者:薄荷硬糖醬  | 我要投稿

題目:

1. 兩數(shù)之和

難度簡單16479收藏分享切換為英文接收動態(tài)反饋

給定一個整數(shù)數(shù)組?nums?和一個整數(shù)目標(biāo)值?target,請你在該數(shù)組中找出?和為目標(biāo)值?target? 的那?兩個?整數(shù),并返回它們的數(shù)組下標(biāo)。

你可以假設(shè)每種輸入只會對應(yīng)一個答案。但是,數(shù)組中同一個元素在答案里不能重復(fù)出現(xiàn)。

你可以按任意順序返回答案。

?

示例 1:

輸入:nums = [2,7,11,15], target = 9輸出:[0,1]解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

輸入:nums = [3,2,4], target = 6輸出:[1,2]

示例 3:

輸入:nums = [3,3], target = 6輸出:[0,1]

?

提示:

  • 2 <= nums.length <= 104

  • -109?<= nums[i] <= 109

  • -109?<= target <= 109

  • 只會存在一個有效答案

進(jìn)階:你可以想出一個時間復(fù)雜度小于?O(n2)?的算法嗎?

第一種法:

暴力解法O(n^2)

class?Solution?{

public:

????vector<int>?twoSum(vector<int>&?nums,?int?target)?{

????????vector<int>?s;

????????int?flag?=?0;

????????for(int?i=0;i<nums.size();i++){

????????????for(int?j=0;j<nums.size();j++){

????????????????if(nums[i]+nums[j]==target&&i!=j){

????????????????????s.push_back(i);s.push_back(j);

????????????????????flag?=?1;

????????????????????break;

????????????????}

????????????}

????????????if(flag)break;

????????}

????????return?s;

????}

};

第二種法:

哈希表:

class?Solution?{

public:

????vector<int>?twoSum(vector<int>&?nums,?int?target)?{

????????unordered_map<int,int>?map;

????????for(int?i=0;i<nums.size();i++){

????????????auto?iner?=?map.find(target-nums[i]);

????????????if(iner!=map.end())return?{iner->second,i};

????????????map.insert(pair<int,int>(nums[i],i));

????????}

????????return?{};

????}

};

如何想到用哈希表?

本題可以利用正在遍歷的nums元素(1)和target求出另一個nums元素(2)的值,但這個

nums元素(2)的值不知道是否真的存在,這時就可以回顧剛才遍歷過的元素來判斷這個nums元素(2)是否存在,在這里就是要判斷一個元素是否被遍歷過,在這種情況下就要使用哈希表,我們要使用的哈希表是c++中的unorder_map(底層原理是哈希表),key要放用于尋找的值,此題中我們要尋找nums元素 (2) ,所以key就用來放nums元素 (2) ,value就用來放nums元素(2)的位置值。

注意:

返回vector<int>的方法:{要返回的數(shù)}


力扣:1. 兩數(shù)之和的評論 (共 條)

分享到微博請遵守國家法律
轮台县| 青冈县| 安塞县| 鞍山市| 江川县| 福海县| 昌平区| 奈曼旗| 图们市| 茌平县| 科技| 冕宁县| 衡山县| 淮阳县| 湘乡市| 浠水县| 木兰县| 灵武市| 沾益县| 黄骅市| 正安县| 遂川县| 大冶市| 海林市| 长白| 廉江市| 宁武县| 石阡县| 迁西县| 自贡市| 托里县| 靖州| 福海县| 师宗县| 东丰县| 观塘区| 安丘市| 依兰县| 永济市| 胶州市| 北流市|