Home 在链表中插入最大公约数
Post
Cancel

在链表中插入最大公约数

题目

1
2
3
4
5
6
7
给你一个链表的头 head ,每个结点包含一个整数值。

在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。

请你返回插入之后的链表。

两个数的 最大公约数 是可以被两个数字整除的最大正整数。

解题思路

  1. 首先需要思考如何计算最大公约数 ```bash def gcd(a,b): while b: a,b = b, a%b return a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2. 然后请回忆链表相关知识(完全忘记了


```bash
curr = head
        while curr and curr.next:
            a,b = curr.val, curr.next.val
            g=gcd(a,b)
            new_node = ListNode(g)
            new_node.next = curr.next
            curr.next = new_node
            curr = new_node.next
        return head

这道题刚看到完全无从下手,感谢G老师!请复习链表相关知识以及简单的,计算最大公约数,最小公约数,最大公倍数,最小公倍数

最大公倍数LCM

两个或多个整数共有的最小的非零倍数。

1
2
def lcm(a, b):
    return abs(a * b) // gcd(a, b)
This post is licensed under CC BY 4.0 by the author.

到达每个位置最小费用

数组矩阵排序