Leetcode每天五題 01

2021-09-14 07:18:11 字數 3067 閱讀 3043

1. 兩數之和

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

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

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

所以返回 [0, 1]

思路:

使用hash表,kv對為值-下標,遍歷到nums[i]時邊放入hash表並檢查是否存在

target-nums[i]

class

solution

; map.

put(nums[i]

,i);

}return null;

}}

2. 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

思路:

參考codeinterview一書

class

solution

if(l2 != null)

s = n1 + n2 + ca;

//進製和 和if(

(ca = s/10)

==1&&(s=s-10)

>0)

;

node =

newlistnode

(s);

pre.next = node;

pre = node;

}//處理最後有進製的情況

if(ca ==1)

return head.next;

}}

11.盛最多水的容器

給定 n 個非負整數 a1,a2,…,an,每個數代表座標中的乙個點 (i,ai) 。在座標內畫 n 條垂直線,垂直線i的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與x 軸共同構成的容器可以容納最多的水。

圖中垂直線代表輸入陣列[1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。

示例:

輸入: [1,8,6,2,5,4,8,3,7]

輸出: 49

說明:你不能傾斜容器,且 n 的值至少為 2。

class

solution

return ans;

}}

15.三數之和

給定乙個包含n個整數的陣列nums,判斷nums中是否存在三個元素a,b,c,使得a+b+c=0?找出所有滿足條件且不重複的三元組。

注意:答案中不可以包含重複的三元組。

例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[[-1, 0, 1],[-1, -1, 2]]

思路:

每次選定乙個數nums[i]後往後使用雙指標查詢-nums[i],轉化的二元組的問題

class

solution

else

if(nums[l]

+ nums[r]

>

-nums[i]

)else}}

}}return ans;

}}

**號碼的字母組合

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

示例:

輸入:「23」

輸出:[「ad」, 「ae」, 「af」, 「bd」, 「be」, 「bf」, 「cd」, 「ce」, 「cf」].

說明:

儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

class

solution

string[

] map =

;//用來儲存數字代表的字串

string[

] str =

newstring

[digits.

length()

];for(

int i =

0; i < digits.

length()

; i++

)collect

(ans, str,"",

0);return ans;

}private

void

collect

(list

ans, string[

] str, string tmpans,

int i)

for(

char c : str[i]

.tochararray())}}

leetcode刷題記錄第五題

題目 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 什麼叫回文串?如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。此題有暴力破解法,即遍歷所有子...

每日五題 Spring

控制反 spring通過控制反轉實現了鬆散耦合,物件們給出它們的依賴,而不是建立或查詢依賴的物件們。面向切面的程式設計 aop spring支援面向切面的程式設計,並且把應用業務邏輯和系統服務分開。容器 spring 包含並管理應用中物件的生命週期和配置。事務管理 spring 提供乙個持續的事務管...

leetCode第五題 最長回文子串

題目 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。用例 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。輸入 cbbd 輸出 bb 本題採用動態規劃演算法進行題解,關於動態規劃可以查詢一些關於他的資料,本題目屬於比較簡易的規劃演算法,只要找到...