![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode总结篇
刷leetcode得到的总结
好事要发生
这个作者很懒,什么都没留下…
展开
-
链表篇总结
一、链表基础定义和操作链表操作的两种方式:直接使用原来的链表来进行操作。设置一个虚拟头结点在进行操作。(更简单)定义链表:class Node: def __init__(self, val): self.val = val self.next = None获取index节点值:def get(self, index: int) -> int: """ Get the value of the index原创 2022-01-06 17:12:57 · 409 阅读 · 0 评论 -
数组篇方法总结
在刷题碰到数组类题目的常用做法原创 2021-12-30 11:33:13 · 131 阅读 · 0 评论 -
leetcode-初级算法之数组篇
一、题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。思路:正向遍历,一快一慢指针,如果两指针指向数相同,慢指针不动,快指针向后移动,知道指向的数不同时,将快指针的值往前挪(挪动到慢指针往前走一步的位置)反向遍历,此时就不用考虑前移的情况,前后两个值相同时,直接把后面那个值删除就好异或的方法,如果前后两个数相同,则异或结果为0,当然这时候要考虑是正向遍历的还是反向遍历的,就跟上面两个结合就好二、题目:给定一个数组,它的第 i 个元素是一支给定股原创 2021-11-30 22:11:54 · 182 阅读 · 0 评论 -
合并两个有序数组
一、直接把两个数组合并然后排序class Solution(object): def merge(self,nums1,m,nums2,n): """ :type nums1: List[int] :type m: int :type nums2: List[int] :type n: int :rtype: void Do not return anything, modify nums1 in-place inst原创 2021-03-11 10:10:58 · 100 阅读 · 0 评论 -
爬楼梯—迭代、递归
题目# 直接递归解法,容易超时,python可以加个缓存装饰器,这样也算是将递归转换成迭代的形式了class Solution: @functools.lru_cache(100) # 缓存装饰器 def climbStairs(self, n: int) -> int: if n == 1: return 1 if n == 2: return 2 return self.climbStairs(n-1) + self.clim原创 2021-03-13 15:09:17 · 226 阅读 · 0 评论 -
判断两个二叉树是否相同
采用深度优先搜索的方式:class Solution: def isSameTree(self, p: TreeNode, q: TreeNode) -> bool: if not p and not q: #两个树都为空 return True elif not p or not q: #只有一个为空 return False elif p.val != q.val:原创 2021-03-16 17:02:47 · 111 阅读 · 0 评论 -
leetcode刷题-20-有效的括号
题目描述*给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。*我的解答class Solution: def isValid(self, s: str)原创 2021-07-08 10:23:18 · 90 阅读 · 0 评论