LeetCode 鍊錶平分

2021-08-11 17:55:08 字數 878 閱讀 5731

給你乙個鍊錶,給你乙個k,讓你把鍊錶均分為k份,如果不能均分,則前面的鍊錶應該長於後面的鍊錶

這個很像分蘋果,我們現在把所有節點比喻成蘋果。

假設現在有7個蘋果,k=3,即籃子為3個。

那麼我們分的方案是

3 2 2

這個方案是這樣來的

蘋果數 / 籃子數 是每乙個籃子的蘋果的基數,然後如果蘋果數%籃子數》0,代表還有一部分蘋果是餘出來的,則前面的籃子每乙個籃子分乙個餘出來的蘋果即可。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if(root==null)

int size = 0;

node * pcur = root;

while(pcur)

int addition = 0;

if(size>k)

addition = size%k;

else

addition = 0;

node * start = root;

node * end =start;

int len = 0;

len = (size/k)?size/k:1;

int j = 0;

for(int i=0;i1;

if(addition)

end = start;

while(j--)

ret.push_back(start);

if(end)

else

}return ret;

}};

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小的結點,另乙個鍊錶儲...