Re: [閒聊] 每日leetcode

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/09/08 22:19), 編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串826/1548 (看更多)
725. Split Linked List in Parts 給一個linked list,和一個整數k 請將這個linked list分成k個linked list 並且用一個矩陣記錄每一個linked list的head 每個linked list的長度不能相差超過1 且較長的要放前面 思路 : 用一個矩陣紀錄每一個node 接著就開始分成k等分 滿簡單的 golang code : /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func splitListToParts(head *ListNode, k int) []*ListNode { rec := make([]*ListNode, 0) for head != nil { rec = append(rec, head) head = head.Next } n := len(rec) res := make([]*ListNode, k) if k > n { for i := 0; i < n; i++ { res[i] = rec[i] rec[i].Next = nil } return res } idx, remainder, num := 0, n%k, n/k for i := 0; i < k; i++ { res[i] = rec[idx] if remainder > 0 { idx += num + 1 rec[idx-1].Next = nil remainder-- } else { idx += num rec[idx-1].Next = nil } } return res } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.24.229 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1725805177.A.A71.html

09/08 22:19, 1年前 , 1F
大師
09/08 22:19, 1F
文章代碼(AID): #1ctR9vfn (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ctR9vfn (Marginalman)