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

歡迎光臨散文網(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ù)之和的評論 (共 條)

分享到微博請遵守國家法律
外汇| 抚顺县| 紫金县| 奉节县| 临颍县| 长寿区| 茶陵县| 开封县| 大洼县| 华亭县| 马龙县| 新密市| 辽阳市| 麻城市| 方正县| 青河县| 阳西县| 来安县| 秦皇岛市| 马关县| 封丘县| 磐石市| 瑞丽市| 全椒县| 井冈山市| 五家渠市| 塘沽区| 微山县| 永昌县| SHOW| 宁化县| 宁强县| 宁海县| 蓝山县| 明星| 三门县| 湛江市| 中西区| 黄骅市| 松江区| 沙坪坝区|