LeetCode63 劃分鍊錶(雙指標)

2021-10-09 18:47:23 字數 860 閱讀 8096

題目描述

給出乙個鍊錶和乙個值 ,以 為參照將鍊錶劃分成兩部分,使所有小於 的節點都位於大於或等於 的節點之前。

兩個部分之內的節點之間要保持的原始相對順序。

例如:給出 > 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...