LeetCode Sama的個人記錄 2

2021-10-04 20:42:04 字數 2816 閱讀 7903

▊【q7】(ez)整數反轉給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 −

1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

class

solution

else

}catch

(runtimeexception e)

// 效率效能較低

}}

class

solution

return result >= integer.min_value && result <= integer.max_value ?

(int

)result :0;

// 用時僅需1ms,效能遠遠高於第一種的字串方法

// 需要注意到,為何此時不再使用捕獲異常的方法來判斷是否溢位呢?

// 這是因為,上面可以使用try catch,是因為integer.valueof中傳入越界數字時會丟擲異常;而第二種方法發生溢位危險,甚至資料發生改變,卻並不丟擲異常

// 因此用long儲存這個有溢位危險的數字,再判斷其之於integer是否溢位

}}

※ 下面這個題目在思路和演算法上意義不大,題目不用讀,直接看下**的注釋即可

▊【q8】(md)字串轉換整數請你來實現乙個 atoi 函式,使其能將字串轉換成整數。

首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。接下來的轉化規則如下:

如果第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字字元組合起來,形成乙個有符號整數。

假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成乙個整數。

注意:假如該字串中的第乙個非空格字元不是乙個有效整數字元、字串為空或字串僅包含空白字元時,則你的函式不需要進行轉換,即無法進行有效轉換。

在任何情況下,若函式不能進行有效的轉換時,請返回 0 。

示例 1:

輸入: 「42」 輸出: 42

示例 2:

輸入: " -42" 輸出: -42

示例 3:

輸入: 「4193 with words」 輸出: 4193

示例 4:

輸入: 「words and 987」 輸出: 0 。

示例 5:

輸入: 「-91283472332」 輸出: -2147483648   超過 32位有符號整數範圍, 因此返回 int_min

class

solution

elseif(

!go &&

!end)

else

if(c ==

'-'|| c ==

'+'|| character.

isdigit

(c))

else

continue;}

if(go &&

!end)

else}if

(end)

else

if(long.

valueof

(s.tostring()

)< integer.min_value)

else

if(long.

valueof

(s.tostring()

)> integer.max_value)

else}}

// 總結:

// 1. 邊界移除問題的典型處理方法(看注釋)

// 2. 設定狀態flag可以使**思路更加清晰;比如此題用go和end表示啟動中和終止兩個狀態

}}

▊【q9】(ez)回文數判斷是否是回文(返回true / false)

題目懶得複製了

class

solution

// 很簡單,就當是複習下api了

}

▊【q11】(md)盛最多水的容器示例:輸入:[1,8,6,2,5,4,8,3,7]

輸出:49

如下圖 :

}// 時間複雜度有o(n²)降o(n)的典型思想就是雙指標

// 如下 ↓

}

class

solution_11_2

return result;

}// ★ 這道題的雙指標法,看似會漏掉情況,實際上具有絕對的安全性(即使這個演算法的安全性是有悖於直覺的)

// ★ 僅僅是看起來簡單

}

qs from

♠ loli suuuki

♣ end

LeetCode Sama的個人記錄 7

q31 md 下乙個排列 實現獲取下乙個排列的函式,演算法需要將給定數字序列重新排列成字典序中下乙個更大的排列。如果不存在下乙個更大的排列,則將數字重新排列成最小的排列 即公升序排列 必須原地修改,只允許使用額外常數空間。以下是一些例子 1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1...

LeetCode Sama的個人記錄 12

q1371 md 每個母音包含偶數次的最長字串 給你乙個字串 s 請你返回滿足以下條件的最長子字串的長度 每個母音字母,即 a e i o u 在子字串中都恰好出現了偶數次。示例 1 輸入 s eleetminicoworoep 輸出 13 解釋 最長子字串是 leetminicowor 它包含 e...

LeetCode Sama的個人記錄 39

q141 ez 環形列表如果鍊錶中有某個節點,可以通過連續跟蹤 next 指標再次到達,則鍊錶中存在環。如果鍊錶中存在環,則返回 true 否則,返回 false 高階 使用常量空間 class solution listnode turtle head listnode rabbit head.n...