給出乙個以頭節點head
作為第乙個節點的鍊錶。鍊錶中的節點分別編號為:node_1, node_2, node_3, ...
。
每個節點都可能有下乙個更大值(next largervalue):對於node_i
,如果其next_larger(node_i)
是node_j.val
,那麼就有j > i
且node_j.val > node_i.val
,而j
是可能的選項中最小的那個。如果不存在這樣的j
,那麼下乙個更大值為0
。
返回整數答案陣列answer
,其中answer[i] = next_larger(node_)
。
注意:在下面的示例中,諸如[2,1,5]
這樣的輸入(不是輸出)是鍊錶的序列化表示,其頭節點的值為 2,第二個節點值為 1,第三個節點值為 5 。
示例 1:
輸入:[2,1,5]輸出:[5,5,0]示例 2:
輸入:[2,7,4,3,5]輸出:[7,0,5,5,0]示例 3:
輸入:[1,7,5,1,9,2,5,1]輸出:[7,9,9,9,0,5,0,0]
對於鍊錶中的每個節點,1 <= node.val <= 10^9
給定列表的長度在[0, 10000]
範圍內
第一種暴力的方法,兩層迴圈
vectornextlargernodes(listnode* head)
return ans;
}
第二種動態規劃
vectornextlargernodes(listnode* head)
int len = vect.size();
vectordp(len,0);
for(int i=len-2;i>=0;i--)
}return dp;
}
leetcode 鍊錶 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...
leetcode 鍊錶 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 利用快慢指標找到中間節點,當快指標走到末尾時,慢指標指向中間節點 交中間節點之後的節點進行鍊錶反轉 設定指標p1從h...
分隔鍊錶(鍊錶 LeetCode)
題目鏈結 給你乙個鍊錶和乙個特定值 x 請你對鍊錶進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5維護兩個鍊錶,乙個鍊錶儲存比x小的結點,另乙個鍊錶儲...