題目描述
給出乙個鍊錶和乙個值 ,以 為參照將鍊錶劃分成兩部分,使所有小於 的節點都位於大於或等於 的節點之前。思路分析:兩個部分之內的節點之間要保持的原始相對順序。
例如:給出 > 1→4→3→2→5→2 和 x=3,
返回》 1→2→2→4→3→5.
示例1,0
輸出
將原鍊錶順序遍歷拆分為兩個小煉表,將其首尾相接就可以得到答案,不需要額外儲存空間,時間複雜度為o(n)。
/**
* struct listnode ;
*/class
solution
else
largehead = l = head;}if
(head-
>val < x)
else
smallhead = s = head;
} head = head-
>next;
}//當x小於所有數字或大於所有數字時
if(smallhead==
nullptr
)return largehead;
if(largehead==
nullptr
)return smallhead;
//一般情況下處理大數鍊錶的尾結點的next值
l->next =
nullptr
; s-
>next = largehead;
return smallhead;}}
;
LeetCode 763 劃分字母區間 雙指標
劃分的每個區間中的所有元素的最遠位置包含在區間內即可。使用 unordered map 提前記錄每個字元的最遠位置,使用時可直接獲取 先根據左邊界元素初始化乙個區間,然後遍歷區間內的字元來重新整理右邊界,直到遍歷到了右邊界,即找到了乙個最小區間,記錄介面並開始下乙個區間即可。class soluti...
Leetcode 763 劃分字母區間
字串s由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca defegde hijhklij 每個字...
Leetcode763 劃分字母區間
problem describe 字串 s 由小寫字母組成。我們要把這個字串劃分為盡可能多的片段,同乙個字母只會出現在其中的乙個片段。返回乙個表示每個字串片段的長度的列表。示例 1 輸入 s ababcbacadefegdehijhklij 輸出 9,7,8 解釋 劃分結果為 ababcbaca d...