Golang LeetCode - 1. Two Sum 兩數(shù)之和

Two Sum 兩數(shù)之和

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

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

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

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

思路分析

  • 參數(shù):一個數(shù)字?jǐn)?shù)組nums涂召,一個目標(biāo)數(shù)target鲤桥。
  • 目標(biāo):讓找到兩個數(shù)字(同一個數(shù)字不能使用兩次),使其和為target瘪弓。
  • 分析:暴力搜索的話是遍歷所有的兩個數(shù)字的組合計算其和,這樣節(jié)省了空間,但是時間復(fù)雜度高泉坐。為了減少時間的復(fù)雜度,需要用空間來換裳仆。
    只遍歷一次數(shù)組腕让,在遍歷的同時將數(shù)據(jù)使用HashMap存儲起來,翻轉(zhuǎn)key和value歧斟,建立數(shù)字和其坐標(biāo)位置之間的映射纯丸。HashMap 是常數(shù)級的查找效率,這樣在遍歷數(shù)組的時候静袖,用 target 減去遍歷到的數(shù)字觉鼻,就是另一個需要的數(shù)字了。直接在 HashMap 中查找其是否存在即可队橙。
    由于當(dāng)前數(shù)字在HashMap中還不存在坠陈,所以不會出現(xiàn)同一個數(shù)字使用兩次的情況萨惑。比如 target 是4,遍歷到了一個2仇矾,另外一個2還未進(jìn)入HashMap中庸蔼,肯定就是要找的值。
    整個實(shí)現(xiàn)步驟為:遍歷一遍數(shù)組贮匕,查找target 減去當(dāng)前數(shù)字是否存在于HashMap中姐仅;如果不存在,則建立 HashMap 映射粗合。代碼如下:

Go代碼

func twoSum(nums []int, target int) []int {
    m := make(map[int]int)
    for k, v := range nums {
        idx, ok := m[target - v]
        if ok {
            return []int{idx, k}
        }
        m[v] = k
    }
    return nil
}
// nums := []int{2, 7, 11, 15}
// target := 9
// result [1 0]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萍嬉,一起剝皮案震驚了整個濱河市乌昔,隨后出現(xiàn)的幾起案子隙疚,更是在濱河造成了極大的恐慌,老刑警劉巖磕道,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件供屉,死亡現(xiàn)場離奇詭異,居然都是意外死亡溺蕉,警方通過查閱死者的電腦和手機(jī)伶丐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疯特,“玉大人哗魂,你說我怎么就攤上這事±煅牛” “怎么了录别?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長邻吞。 經(jīng)常有香客問我组题,道長,這世上最難降的妖魔是什么抱冷? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任崔列,我火速辦了婚禮,結(jié)果婚禮上旺遮,老公的妹妹穿的比我還像新娘赵讯。我一直安慰自己,他們只是感情好耿眉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布边翼。 她就那樣靜靜地躺著,像睡著了一般跷敬。 火紅的嫁衣襯著肌膚如雪讯私。 梳的紋絲不亂的頭發(fā)上热押,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音斤寇,去河邊找鬼桶癣。 笑死,一個胖子當(dāng)著我的面吹牛娘锁,可吹牛的內(nèi)容都是我干的牙寞。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼莫秆,長吁一口氣:“原來是場噩夢啊……” “哼间雀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起镊屎,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤惹挟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缝驳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體连锯,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年用狱,在試婚紗的時候發(fā)現(xiàn)自己被綠了运怖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡夏伊,死狀恐怖摇展,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溺忧,我是刑警寧澤咏连,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站砸狞,受9級特大地震影響捻勉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刀森,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一踱启、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧研底,春花似錦埠偿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乾胶,卻和暖如春抖剿,著一層夾襖步出監(jiān)牢的瞬間朽寞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工斩郎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脑融,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓缩宜,卻偏偏與公主長得像肘迎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锻煌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

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