看板 Marginalman
※ 引述《dont (dont)》之銘言: : 2807. Insert Greatest Common Divisors in Linked List : ## 思路 : 照著做 中間塞gcd : ## Code : ```python : class Solution: : def insertGreatestCommonDivisors(self, head: Optional[ListNode]) -> : Optional[ListNode]: : def get_gcd(x, y): : while y: : x, y = y, x % y : return x : curr = head : while curr and curr.next: : gcd = get_gcd(curr.val, curr.next.val) : curr.next = node = ListNode(gcd, curr.next) : curr = node.next : return head : ``` : 817. Linked List Components : ## 思路 : 先把nums轉成set再掃LinkedList : 如果node在nums裡就res+1並且跳過相連且在nums裡的node : ## Code : ```python : class Solution: : def numComponents(self, head: Optional[ListNode], nums: List[int]) -> int: : nums = set(nums) : res = 0 : while head: : if head.val in nums: : res += 1 : while head and head.val in nums: : head = head.next : else: : head = head.next : return res : ``` 思路: 照著做 Python Code: # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def insertGreatestCommonDivisors(self, head: Optional[ListNode]) -> Optional[ListNode]: tmp = ListNode(next = head) pre = head head = head.next while head: x = math.gcd(head.val,pre.val) pre.next = ListNode(x, next = head) pre = head head = head.next return tmp.next -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.109.31 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1725940480.A.6EB.html
JerryChungYC: 剩我不會了 09/10 11:55
JIWP: 我好佩服你 09/10 11:57
sustainer123: 我直接math 我好爛 09/10 11:57