
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 · 434 阅读 · 0 评论 -
数组篇方法总结
在刷题碰到数组类题目的常用做法原创 2021-12-30 11:33:13 · 157 阅读 · 0 评论 -
leetcode-初级算法之数组篇
一、题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 思路: 正向遍历,一快一慢指针,如果两指针指向数相同,慢指针不动,快指针向后移动,知道指向的数不同时,将快指针的值往前挪(挪动到慢指针往前走一步的位置) 反向遍历,此时就不用考虑前移的情况,前后两个值相同时,直接把后面那个值删除就好 异或的方法,如果前后两个数相同,则异或结果为0,当然这时候要考虑是正向遍历的还是反向遍历的,就跟上面两个结合就好 二、题目:给定一个数组,它的第 i 个元素是一支给定股原创 2021-11-30 22:11:54 · 257 阅读 · 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 · 124 阅读 · 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 · 283 阅读 · 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 · 131 阅读 · 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 · 136 阅读 · 0 评论