Vigilr
Vigilr
全部文章
分类
题解(7)
归档
标签
去牛客网
登录
/
注册
Vigilr的博客
代码使我兴奋
全部文章
(共7篇)
题解 | 删除有序链表中重复的元素-I | 一次遍历
链表是升序排列,一次遍历只需比较和前一个节点是否相等,相等就删除 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ...
Python3
链表
2021-10-10
0
438
题解 | 寻找峰值 | 逆序遍历
寻找索引最大的山峰,从后往前遍历,遇到山峰就返回。 # 寻找最后的山峰 # @param a int整型一维数组 # @return int整型 # class Solution: def solve(self , a ): # write code here ...
Python3
数组
2021-10-06
0
378
题解 | 最大公约数 | 辗转相除法&更相减损术
方法一:辗转相除法 a , b 的最大公约数为 b 与 a/b的余数 的最大公约数相等。 方法二:更相减损术 出自《九章算术》,核心思想是大数减小数,直到差和减数相等。 辗转相除法 更相减损术 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # ...
Python3
数学
2021-10-03
2
595
题解 | 单链表的排序 | 链表排序
方法一: 将链表中的所有节点的值存储到列表,利用列表的排序方法重新排序,最后按顺序构建新的链表 方法二: 利用归并排序的思想,将1个链表划分为长度为链表长度一半的两个链表,层层递归,直到长度为1,然后按序合并 python列表排序 python归并排序 # class ListNode:...
Python3
链表
归并排序
2021-10-01
1
556
题解 | 两个链表生成相加链表 | 链表翻转相加
先分别翻转两个链表,将个位移到表头对齐,然后逐位相加(注意进位),相加之后生成的新链表也是个位在表头,最后需要再翻转一下。 # class ListNode: # def __init__(self, x): # self.val = x # self.nex...
Python3
链表
模拟
2021-09-30
0
517
题解 | 实现二叉树先序,中序和后序遍历 | 直接三次递归
憨憨解法,三种遍历写三种递归 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @p...
Python3
递归
2021-09-29
1
486
题解 | 判断链表中是否有环 | python双指针
判断是否有环,需要两个指针,一个一次走一步,一个一次走两步,相遇说明链表有环,快指针到头结束循环代表没有换 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None...
Python3
双指针
2021-09-28
2
528