給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。
請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o(1),時間複雜度應為 o(nodes),nodes 為節點總數。
使用迭代指標遍歷鍊錶將結果分發給各個指標
func oddevenlist(head *listnode) *listnode ,&listnode{},&listnode{}
if head !=nil && head.next != nilelse
var time int = 1
for iterator != nil else
iterator = iterator.next
time++
}evenlast.next = nil
oddlast.next = evenhead
return head
}
在執行賦值操作時:
if time%2 != 0else
不可寫成
if time%2 != 0else
由於在表示式執行時,各個變數的值已經被計算出來了。
此表示式在語句被載入的時候oddlast.next的值被計算為nil(在給iterator賦值之前),所以在賦值之後oddlast會被賦值成nil而不是iterator.next。
刷題之路 揹包問題
乙個揹包有一定的承重cap,有n件物品,每件都有自己的價值,記錄在陣列v中,也都有自己的重量,記錄在陣列w中,每件物品只能選擇要裝入揹包還是不裝入揹包,要求在不超過揹包承重的前提下,選出物品的總價值最大。給定物品的重量w價值v及物品數n和承重cap。請返回最大總價值。經典動態規劃問題,類似於找零錢問...
Evan的LeetCode刷題之路
二 資料庫 以此記錄本人的leetcode刷題之路。題目內容均 於leetcode 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2...
小白刷題之路 零矩陣
題目描述如下 編寫一種演算法,若m n矩陣中某個元素為0,則將其所在的行與列清零。輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0 0,3,1,0 對於這道題來說,猛...