LeetCode初級演算法之陣列 1 兩數之和

2021-10-11 01:56:03 字數 1121 閱讀 8396

01題目描述

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

示例

輸入:nums = [2, 7, 11, 15], target = 9

輸出:[0, 1] 

因為 nums[0] + nums[1] = 2 + 7 = 9

02暴力列舉

這裡想必大家很快就能得到思路也就是雙指標遍歷所有兩兩相加判斷是否與目標值相等

}03hash表

但實際上按照上面我們去到陣列當中找兩個數相加為目標值的方式也就是在確定nums[i]的情況下與遍歷找target - nums[i].既然是這樣子那我們直接遍歷一次記下所有的nums元素每次看陣列當中存在taget-nums[i]這個值不。若存在即返回下標為i與taget-nums[i]這個值的下標。那麼我們就使用hash表去記錄陣列值為key下標為value

}04總結

前者比起雜湊表的解法未新增快取資訊因此需要花o(n^2)的時間複雜度來匹配,採用hash表記錄增加了空間消耗時間複雜度o(n)因為配對的過程轉為hash表查詢。

LeetCode初級演算法之陣列 存在重複

題目描述 給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列 現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true 示例 2 輸入 1,2,3,4 輸出 false 示例 3 輸入 1,1,1,3,3,4,3,2,4,2...

LeetCode初級演算法之陣列 加一

題目描述 題目描述 給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2...

LeetCode初級演算法之陣列 283 移動零

給定乙個陣列nums,編寫乙個函式將所有0移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。題目資訊 輸入 陣列 輸出 陣列 將原陣列的0都移動到後面 額外 空間o 1 時間儘量...