Re: [閒聊] 每日leetcode
725. Split Linked List in Parts
問題: 給一linked list 要分成k組
思路: 先算出長度n 每組n/k個 有n%k個組會多1個
每次loop 就push每組的頭 讓每組的尾巴=nullptr
class Solution {
public:
vector<ListNode*> splitListToParts(ListNode* head, int k) {
vector<ListNode*> ans;
int n = 0;
ListNode* cur = head;
while(cur != nullptr){
n++;
cur = cur->next;
}
int partSize = n / k, partExtra = n > k ? n % k : 0;
cur = head;
while(ans.size() < k){
ans.push_back(cur);
int steps = ans.size() <= partExtra ? partSize : partSize-1;
while(cur && steps-- > 0){
cur = cur->next;
}
if(cur != nullptr){
ListNode* partEnd = cur;
cur = cur->next;
partEnd->next= nullptr;
}
}
return ans;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.222.80 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1725758653.A.12E.html
討論串 (同標題文章)
完整討論串 (本文為第 823 之 1548 篇):