算法--兩數(shù)之和

問題描述:

給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù)碎捺。

你可以假設(shè)每個輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9因為 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]

Java算法一:

暴力遍歷--我的杰作


暴力遍歷算法-1

后來我知道凤薛。可以 return new int[] {i,j}诞仓;嗯缤苫,的確又優(yōu)化了我的代碼,好開心(??ˇ?ˇ?)墅拭。

但是活玲!但是啊谍婉!耗時長啊舒憾,關(guān)于時間復(fù)雜度可以看這里,反正就是耗時長穗熬,優(yōu)秀的我當(dāng)然不會妥協(xié)的呀镀迂。↓↓↓↓↓


Java算法二:

兩遍哈希表唤蔗?探遵??妓柜?--來自LeetCode别凤,學(xué)習(xí)學(xué)習(xí)。

哈希表什么鬼领虹?黑人問號规哪。

看這里看這里,學(xué)習(xí)到了塌衰。-->>哈希表

引用自LeetCode

為了對運行時間復(fù)雜度進行優(yōu)化诉稍,我們需要一種更有效的方法來檢查數(shù)組中是否存在目標(biāo)元素。如果存在最疆,我們需要找出它的索引杯巨。保持數(shù)組中的每個元素與其索引相互對應(yīng)的最好方法是什么?哈希表努酸。

通過以空間換取速度的方式服爷,我們可以將查找時間從O(n)O(n)O(n)降低到O(1)O(1)O(1)。哈希表正是為此目的而構(gòu)建的,它支持以近似恒定的時間進行快速查找仍源。我用“近似”來描述心褐,是因為一旦出現(xiàn)沖突,查找用時可能會退化到O(n)O(n)O(n)笼踩。但只要你仔細地挑選哈希函數(shù)逗爹,在哈希表中進行查找的用時應(yīng)當(dāng)被攤銷為O(1)O(1)O(1)。

一個簡單的實現(xiàn)使用了兩次迭代嚎于。在第一次迭代中掘而,我們將每個元素的值和它的索引添加到表中。然后于购,在第二次迭代中袍睡,我們將檢查每個元素所對應(yīng)的目標(biāo)元素(target?nums[i]target - nums[i]target?nums[i])是否存在于表中。注意肋僧,該目標(biāo)元素不能是nums[i]nums[i]nums[i]本身斑胜!

來自LeetCode

public int[] twoSum(int[] nums, int target)

{

??? Map map = new HashMap<>();

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

? ? ? ? map.put(nums[i], i);//構(gòu)成key,value對應(yīng)的關(guān)系,數(shù)值為key,索引為value

? ? }

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

? ? ? ? int complement = target - nums[i]色瘩;//求補

? ? ? ? if (map.containsKey(complement) && (int)map.get(complement) != i) {

//尋找除了自身以外的元素

? ? ? ? ? ? return new int[] { i, (int)map.get(complement) };//符合補數(shù)的下標(biāo)

? ? ? ? }

? ? }

? ? throw new IllegalArgumentException("No two sum solution");//異常處理

}

嗯,還是這個方法好逸寓,代碼少居兆,速度快


算法三:

一遍哈希表:--LeetCode

事實證明,我們可以一次完成竹伸。在進行迭代并將元素插入到表中的同時泥栖,我們還會回過頭來檢查表中是否已經(jīng)存在當(dāng)前元素所對應(yīng)的目標(biāo)元素。如果它存在勋篓,那我們已經(jīng)找到了對應(yīng)解吧享,并立即將其返回。

public int[] twoSum(int[] nums, int target) {

??? Map map = new HashMap<>();

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

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

? ? ? ? if (map.containsKey(complement)) {

? ? ? ? ? ? return new int[] { map.get(complement), i };

? ? ? ? }

? ? ? ? map.put(nums[i], i);//放的同時找---回首望月譬嚣,嘿钢颂,皮。

? ? }

? ? throw new IllegalArgumentException("No two sum solution");

}

總結(jié)就是對現(xiàn)有函數(shù)的熟練使用以及結(jié)題思路要找對拜银,哎殊鞭,可惜我的是加法,年輕啊騷年

加油加油--你是要稱為大神的男人尼桶!

774--WELOVE

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末操灿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泵督,更是在濱河造成了極大的恐慌趾盐,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異救鲤,居然都是意外死亡久窟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門蜒简,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘸羡,“玉大人,你說我怎么就攤上這事搓茬∮汤担” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵卷仑,是天一觀的道長峻村。 經(jīng)常有香客問我,道長锡凝,這世上最難降的妖魔是什么粘昨? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮窜锯,結(jié)果婚禮上张肾,老公的妹妹穿的比我還像新娘。我一直安慰自己锚扎,他們只是感情好吞瞪,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驾孔,像睡著了一般芍秆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翠勉,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天妖啥,我揣著相機與錄音,去河邊找鬼对碌。 笑死荆虱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的朽们。 我是一名探鬼主播克伊,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼华坦!你這毒婦竟也來了愿吹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惜姐,失蹤者是張志新(化名)和其女友劉穎犁跪,沒想到半個月后椿息,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡坷衍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年寝优,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫耳。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡乏矾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迁杨,到底是詐尸還是另有隱情钻心,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布铅协,位于F島的核電站捷沸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏狐史。R本人自食惡果不足惜痒给,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骏全。 院中可真熱鬧苍柏,春花似錦、人聲如沸姜贡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽研乒。三九已至儿奶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咬展。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恋博,地道東北人叨叙。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像船惨,于是被迫代替她去往敵國和親柜裸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

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