▊【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)的典型思想就是雙指標
// 如下 ↓
}
qs fromclass
solution_11_2
return result;
}// ★ 這道題的雙指標法,看似會漏掉情況,實際上具有絕對的安全性(即使這個演算法的安全性是有悖於直覺的)
// ★ 僅僅是看起來簡單
}
♠ 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...