【復(fù)試上機(jī)】LeetCode刷題-簡單-1. Two Sum

題目

文字思想:

遍歷數(shù)組中所有元素,假設(shè)當(dāng)前遍歷到到的數(shù)是A,下標(biāo)是i,我們構(gòu)建HashMap為(期待的加數(shù) = target - A, A),則A+期待的加數(shù)=target。對每一個遍歷到的數(shù),我們看看它是否存在與HashMap的key中,如果存在,那么這個數(shù)與對應(yīng)的value就是解。

當(dāng)然,要求返回的是下標(biāo),所以構(gòu)建HashMap為(期待的加數(shù) = target - A, i)。

例子:

數(shù)組:2, 11, 15, 7
目標(biāo)和:9
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
當(dāng)前HashMap:
當(dāng)前處理:2,下標(biāo)為:0
2不是HashMap的key,我們計(jì)算它期待的另一個加數(shù)
2期待的另一個加數(shù)是:7
HashMap中新增存儲項(xiàng):key=7, value=0
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
當(dāng)前HashMap:
(7, 0)
當(dāng)前處理:11,下標(biāo)為:1
11不是HashMap的key,我們計(jì)算它期待的另一個加數(shù)
11期待的另一個加數(shù)是:-2
HashMap中新增存儲項(xiàng):key=-2, value=1
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
當(dāng)前HashMap:
(-2, 1)
(7, 0)
當(dāng)前處理:15,下標(biāo)為:2
15不是HashMap的key,我們計(jì)算它期待的另一個加數(shù)
15期待的另一個加數(shù)是:-6
HashMap中新增存儲項(xiàng):key=-6, value=2
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
當(dāng)前HashMap:
(-2, 1)
(-6, 2)
(7, 0)
當(dāng)前處理:7,下標(biāo)為:3
7是HashMap的key,那么key=7 + nums[value]= = nums[0]=2 = target = 9
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
對應(yīng)下標(biāo):3,0

代碼:


代碼

時間復(fù)雜度:
? 遍歷nums,O(n),空間復(fù)雜度:HashMap,O(n)。

積累:

  1. HashMap機(jī)制:key-value,這屬于Java知識。
  2. 本題完整思想。

推薦閱讀:LeetCode刷題集合

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容