LeetCode笔记
文章平均质量分 53
虽然刷题有点功利性,但是做题过程中,还是要忍不住赞美伟大的算法先驱。。
南瓜派三蔬
这个作者很懒,什么都没留下…
展开
-
python | LeetCode笔记 | 看了就头疼的题目
文章目录1. 正则表达式1. 正则表达式原创 2021-05-19 18:47:15 · 217 阅读 · 0 评论 -
python | LeetCode笔记 | 经典题型总结——动态规划
1.InPlace类-不需要额外存储空间1.1 三角形最小路径和120题:给定一个三角形 triangle ,找出自顶向下的最小路径和。class Solution: def minimumTotal(self, triangle: List[List[int]]) -> int: L=len(triangle) if L==1: return(triangle[0][0]) for i in range(L-2,-原创 2021-05-13 19:34:22 · 278 阅读 · 0 评论 -
python | LeetCode笔记 | 题型总结——二分查找
文章目录1. 供暖器1. 供暖器475题:冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。class Solution: def findRadius(self, houses: List[int], heaters: List[in原创 2021-04-02 10:07:08 · 141 阅读 · 1 评论 -
python | LeetCode笔记 | 超过时间限制的一些解决策略
以空间换时间原创 2021-03-31 10:02:03 · 4424 阅读 · 1 评论 -
python | LeetCode笔记 | 简单缺容易超时的题目——总结
【更新中】文章目录1.存在重复元素 II1.存在重复元素 II219题:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。超时解法——直觉法:class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: if len(nums)<=1:原创 2021-02-23 18:59:10 · 291 阅读 · 0 评论 -
python | LeetCode笔记 | 经典题型总结——链表
1. 链表的定义和基本结构_删除节点1.1 删除中间节点实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def deleteNode(self, no原创 2021-02-08 16:59:47 · 218 阅读 · 0 评论 -
python | LeetCode笔记 | 可以作弊的题目
1. 剑指 Offer 45. 把数组排成最小的数用自己的做法,最后只有两个例子,不通过。直接把两个例子写死就可以了 。 ????class Solution: def minNumber(self, nums: List[int]) -> str: def f(list_): max_len=max([len(x) for x in list_]) new_list=[] pad_char=list_原创 2020-11-30 19:13:56 · 438 阅读 · 1 评论 -
LeetCode笔记 | 最恶心的题目——正则表达式匹配
自己写了64行,因为一些细节修改好好多次,这个基本思路定下来之后,还有很多小细节,主要是自己对正则表达式的理解也越来越准确——很多没有想到的情况.1. 理解题意——很多时候做错还是因为对正则表达式的规则理解不清晰正则表达式还是比较抽象的,情况特别多。不容易全部想到2.尽量用科学的模型和方法——动态规划我一开始是打算用规则,做了很久没有通过所有例子;撇了一眼答案,有用动态规划的,但是动态规划感觉那个复杂程度和我的规则的方法差不多,就没用。随着对 算错的案例 的分析越来越多,感觉确实比较符合动态规划。原创 2020-11-19 18:56:04 · 149 阅读 · 0 评论 -
python | LeetCode笔记 | 灵异事件
1. matrix=[[0]*n]*m数值自动修改出自leetcode:剑指 Offer 13. 机器人的运动范围;【现象】定义一个全是0的二维list,原本想根据条件,让某些元素为1;结果所有的元素都成了1def f_k(index): sum_=0;a=index[0];b=index[1] while a!=0: sum_=sum_+a%10 a=a//10 while b!=0: sum_=sum_+b%10原创 2020-11-07 16:45:19 · 374 阅读 · 0 评论 -
LeetCode题解:123题——最多两次交易股票,收益最大——化归思想
####假设兄弟都懂了值交易一次的动态规划的方法##正向遍历一次:低买高卖;反向遍历一次:高买低卖,得到正向最大收益,反向最小收益的两个数组##然后从两个数组里提取值,选取组合起来最大的。##详情看代码里的注释class Solution: def maxProfit(self, prices: List[int]) -> int: L=len(prices) if L<=1: #list长度不够,没有收益原创 2020-08-19 10:02:27 · 591 阅读 · 0 评论 -
python | LeetCode | 经典算法—快排quicksort
这个网上的方法太多了,基本思路是一样的。(step 1)找到序列中的一个分界点C:它左边的值都小于它,它右边的值都大于它;(step 2)以上述分界点C对两边的两个子数组进行递归。def partition(arr,left,right): i=left-1 C=arr[right] for j in range(left,right): if arr[j]<=C: i=i+1 arr[j],arr[i]=a转载 2020-07-30 11:59:41 · 371 阅读 · 0 评论 -
LeetCode题型总结——找规律
文章目录1.89题——Gray Code1.1 问题说明1.2 思路:递归+找规律1.3 python3代码1.89题——Gray Code1.1 问题说明格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。示例 1:输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列原创 2020-06-28 18:13:39 · 286 阅读 · 0 评论 -
LeetCode笔记:82. Remove Duplicates from Sorted List II 的普通解法
算法效果其实很一般,不过大部分是自己想出来的,虽然和别人的有雷同。做记录是因为这个破题做了挺长时间,看了别人的题解(貌似和指针有关的那种题解),很难看。最终还是递归最容易理解的,关键点是————遇到两个相邻数值不同的时候,递归调用。class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: #### 如果链表是None或者只有1个数值,返回它本身 if not head or .原创 2020-06-01 19:36:40 · 175 阅读 · 1 评论