[LeetCode] TwoSum兩數(shù)之和

[LeetCode] ?TwoSum兩數(shù)之和

Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.

You may assume that each input would haveexactlyone solution, and you may not use thesameelement twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0,1].

用暴力搜索,算法的時(shí)間復(fù)雜度是O(n^2)

/**?

* Time Limit Exceeded?

*/

class Solution ?{

public:? ??

vector<int>twoSum(vector<int>&numbers, int target)

{? ? ? ? vector<int> res;

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

? ? ? ? ? ? ? for (int j = i + 1; j < numbers.size(); ++j) {

? ? ? ? ? ? ? ? ? ? if (numbers[j] + numbers[i] == target) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? res.push_back(i + 1);

? ? ? ? ? ? ? ? ? ? ? ? ? ? res.push_back(j + 1);

? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ?}

}

? ? ? ? ? ?return res;

}

};

那么只能想個(gè)O(n)的算法來實(shí)現(xiàn),整個(gè)實(shí)現(xiàn)步驟為:先遍歷一遍數(shù)組芭挽,建立map數(shù)據(jù),然后再遍歷一遍,開始查找古掏,找到則記錄index剪芍。代碼如下:

class Solution {

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

{? ? ? ? unordered_map<int,int> ? m;? ? ? ??

? ? ? ? ?vector<int> ? ? ? ? ? ? ? res;

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

? ? ? ? ? ? ? ?m[nums[i]] = i;

? ? ? ? ?}

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

? ? ? ? ? ? ? ? ? ?int t = target - nums[i];

? ? ? ? ? ? if (m.count(t) && m[t] != i) {

? ? ? ? ? ? ? ? ? ?res.push_back(i);

? ? ? ? ? ? ? ? ? res.push_back(m[t]);

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

? ? ? ? ? ? ? }

?}

? ? ? ? ? ? ? ? return res;

}

};

更簡(jiǎn)單的寫法

class Solution {

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

? ? ? ? ? ?unordered_map<int,int> m;

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

? ? ? ? ? ? ? ? if (m.count(target - nums[i])) {

? ? ? ? ? ? ? ? ? ? ? return {i, m[target - nums[i]]};

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ?m[nums[i]] = i;

}

return {};

}

};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岔擂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疗垛,更是在濱河造成了極大的恐慌,老刑警劉巖硫朦,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件继谚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阵幸,警方通過查閱死者的電腦和手機(jī)花履,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挚赊,“玉大人诡壁,你說我怎么就攤上這事≤睿” “怎么了妹卿?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蔑鹦。 經(jīng)常有香客問我夺克,道長(zhǎng),這世上最難降的妖魔是什么嚎朽? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任铺纽,我火速辦了婚禮,結(jié)果婚禮上哟忍,老公的妹妹穿的比我還像新娘狡门。我一直安慰自己,他們只是感情好锅很,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布其馏。 她就那樣靜靜地躺著,像睡著了一般爆安。 火紅的嫁衣襯著肌膚如雪叛复。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音褐奥,去河邊找鬼咖耘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抖僵,可吹牛的內(nèi)容都是我干的鲤看。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耍群,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼义桂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蹈垢,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤慷吊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后曹抬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溉瓶,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年谤民,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堰酿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡张足,死狀恐怖触创,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情为牍,我是刑警寧澤哼绑,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站碉咆,受9級(jí)特大地震影響抖韩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疫铜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一茂浮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧块攒,春花似錦励稳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趣避。三九已至庞呕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背住练。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工地啰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讲逛。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓亏吝,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盏混。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔚鸥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容