leetcode
文章平均质量分 75
NorthFish北海有鱼
simple notebook.想去硅谷写代码
展开
-
leetcode-记忆化深搜/动态规划v2
动态规划原创 2022-07-23 19:22:40 · 546 阅读 · 1 评论 -
leetcode-区间dp/数位dp
区间dp原创 2022-06-05 16:05:32 · 288 阅读 · 0 评论 -
leetcode-位运算/状态压缩v2
287 寻找重复数原创 2022-05-17 20:14:27 · 145 阅读 · 0 评论 -
leetcode-括号问题
678. 有效的括号字符串贪心力扣class Solution { public boolean checkValidString(String s) { int min = 0, max = 0; // 维护当前左括号的数量范围:[min, max] char[] chars = s.toCharArray(); for(char i : chars) { if(i == '...原创 2022-05-10 11:55:56 · 285 阅读 · 0 评论 -
leetcode-原地哈希
442. 数组中重复的数据原地Hash - SegmentFault 思否满足要求的元素是 nums[i] (当前遍历到的元素),放到对应的下标:nums[i]-1 (注意这个是下标)所以是 nums[nums[i]-1] = nums[i] ,把nums[i]放到下标nums[i]-1上。...原创 2022-05-09 12:26:16 · 273 阅读 · 0 评论 -
leetcode-计算贡献
6050. 字符串的总引力开始我想的是类似最长回文子串那种,二维dp。本来我是觉得dp[i][j]表示从i到j的子字符串长度,然后从dp[i+1][j]和dp[i][j-1]中计算得到。debug走了一下,在这中间计算的话会有重复值...原创 2022-05-02 11:55:19 · 443 阅读 · 0 评论 -
leetcode-拓扑排序算法
拓扑排序原理拓扑排序算法分析(通俗易懂)_hongjie_lin-CSDN博客_拓扑排序算法207 课程表bfs和dfs都可以。先来看一下bfs。思路是:入度法,入度为0的时候,表示这门课程没有先修课程了,可以学习这门课程了。1.存储每个课程的入度值2.存储每个课程的入度节点为什么?#存储节点的先修课程,key是先修课程,value是这个先修课程的下一个节点。edges=collections.defaultdict(list)。答:因为是遍历到当前入度为0的课程原创 2022-03-31 12:33:50 · 1332 阅读 · 0 评论 -
搜索旋转排序数组及二分的两种写法
35. 搜索插入位置二分的两种写法:开区间和闭区间力扣闭区间写法class Solution: def searchInsert(self, nums: List[int], target: int) -> int: #闭区间写法 left = 0 right = len(nums) - 1 while left <= right: mid = (left + r.原创 2022-03-29 23:49:18 · 182 阅读 · 0 评论 -
leetcode-Dijkstra算法
单源最短路径-Dijkstra算法_哔哩哔哩_bilibili原创 2022-03-13 21:28:45 · 1872 阅读 · 1 评论 -
背包问题/打家劫舍/股票问题/爬楼梯问题v2
leetcode-买卖股票/背包问题_MaYingColdPlay的博客-CSDN博客背包问题01背包494 目标和注意这个题cache的设计,是把下标和当前值合并起来。def findTargetSumWays_v3(nums,target): def dfs(i,cur): key=str(i)+'_'+str(cur) if key in cache: return cache[key]..原创 2022-03-01 09:25:40 · 624 阅读 · 3 评论 -
leetcode-前缀和/差分数组
5972. 统计隐藏数组数目先求出来这条线,然后统一往上走直到upper,往下走直到lower。这个上下能波动几次,就是最终返回值其实就是在算这个曲线的高低差是多少class Solution: def numberOfArrays(self, differences: List[int], lower: int, upper: int) -> int: value=0 min_val=0 max_val=0..原创 2022-02-24 23:01:08 · 633 阅读 · 2 评论 -
leetcode-最大子矩阵/最大子序和
最大子序和力扣o(1)空间复杂度class Solution(object): def maxSubArray(self, nums): """ :type nums: List[int] :rtype: int """ #o(1)空间复杂度 #为“最大子矩阵“做铺垫,记录下标 max_sum=nums[0] dp_i=nums[0] a.原创 2022-02-19 21:44:07 · 252 阅读 · 0 评论 -
leetcode-跳跃游戏
1345. 跳跃游戏 IV原创 2022-01-21 11:08:21 · 2479 阅读 · 0 评论 -
leetcode-贪心法
5194. 得到目标值的最少行动次数原创 2022-01-16 22:20:19 · 664 阅读 · 1 评论 -
leetcode-位运算/状态压缩
5978. 统计追加字母可以获得的单词数class Solution: def wordCount(self, startWords: List[str], targetWords: List[str]) -> int: s = set() for word in startWords: mask = 0 for ch in word: mask |= 1 &l..原创 2022-01-09 16:51:53 · 5322 阅读 · 0 评论 -
leetcode-滑动窗口/双指针/哈希表
5955 摘水果力扣https://leetcode-cn.com/problems/maximum-fruits-harvested-after-at-most-k-steps/solution/qiu-chu-fan-wei-nei-qian-zhui-he-zui-da-tfeoy/原创 2021-12-12 16:09:27 · 5054 阅读 · 2 评论 -
leetcode-并查集
leetcode-广度优先遍历/图/并查集_MaYingColdPlay的博客-CSDN博客5941 找出知道秘密的所有专家class UnionFind: def __init__(self, n): self.count = n self.parent = [i for i in range(n)] self.rank = [0] * n def find(self, i): if self...原创 2022-06-04 21:26:45 · 772 阅读 · 1 评论 -
leetcode-二分法
二分法有两种,一种是有left,right,然后mid等于两者相加再除以2,折半查找。另外一种是在递归的时候折半查找。leetcode-快速幂/平方/相加/相除_MaYingColdPlay的博客-CSDN博客69. x 的平方根https://leetcode-cn.com/problems/sqrtx/https://blog.csdn.net/MaYingColdPlay/article/details/119718239?spm=1001.2014.3001.55014.寻找2个正序数组原创 2021-10-17 10:19:04 · 449 阅读 · 0 评论 -
leetcode每日一题202110
282 给表达式添加运算符我的思路:典型的回溯。回溯终止条件是:if len(path)==len(num)+len(num)-1 and cal_value(path)==target: res.append(path)我这个终止条件只考虑到了比如123,6。 1+2+3这种情况.比如 105,5。10-5 这种情况没有考虑到。这个终止条件有问题,考虑不全。class Solution(object): def addOperators(...原创 2021-10-16 20:22:37 · 227 阅读 · 0 评论 -
python_bisect模块的使用
【Python】详解 bisect 模块_闻韶-CSDN博客bisect 模块,顾名思义,是实现了二分 (bisection) 算法的模块,能够保持序列 sequence 顺序不变的情况下对其进行二分查找和插入,适合用于降低对冗长序列查找的时间成本。当然,通过“以空间换时间”的方式也是可行的,例如用于构造 hashmap 的 Counter 类。但本文的焦点是使用 bisect 模块 “凭查找方式降时间”,关于 Counter 模块的内容详见链接。https://blog.csdn.net/qq_39478原创 2021-10-10 12:35:46 · 168 阅读 · 0 评论 -
leetcode-回溯算法问题
力扣https://leetcode-cn.com/problems/combinations/solution/dai-ma-sui-xiang-lu-dai-ni-xue-tou-hui-s-0uql/原创 2021-10-04 19:34:43 · 470 阅读 · 0 评论 -
leetcode-子序列/子串/子数组问题
5.最长回文子串动态规划516.最长回文子序列原创 2021-10-02 11:18:16 · 411 阅读 · 2 评论 -
leetcode-g题
两数相加原创 2021-09-19 21:24:51 · 152 阅读 · 0 评论 -
leetcode-数学题
5868. 可互换矩形的组数力扣https://leetcode-cn.com/problems/number-of-pairs-of-interchangeable-rectangles/我真是太蠢了,居然用的是遍历做的。后来剪纸了一下,都超时。下面贴一下我的代码。class Solution: def interchangeableRectangles(self, rectangles: List[List[int]]) -> int: cnt = 0原创 2021-09-12 18:57:05 · 574 阅读 · 0 评论 -
leetcode-快速幂/平方/相加/相除
69. x 的平方根https://leetcode-cn.com/problems/sqrtx/原创 2021-08-15 19:17:20 · 198 阅读 · 0 评论 -
leetcode-标记数组/变量法降低复杂度
73. 矩阵置零https://leetcode-cn.com/problems/set-matrix-zeroes/原本的解法class Solution(object): def helper(self,matrix,i,j,flag): for h in range(len(matrix[0])): if matrix[i][h] !=0: matrix[i][h]=0 fla原创 2021-08-15 19:05:41 · 119 阅读 · 0 评论 -
leetcode-时间空间复杂度
169 多数元素用哈希表解法空间复杂度是o(n),用摩尔投票法,空间复杂度是o(1),摩尔投票法是两个两个的碰撞,进行厮杀。https://www.bilibili.com/video/BV1it411V784?from=search&seid=3388060042056238482原创 2020-10-31 11:15:17 · 271 阅读 · 0 评论 -
leetcode-矩阵路径v1
64. 最小路径和class Solution(object): def minPathSum(self, grid): """ :type grid: List[List[int]] :rtype: int """ dp=[[0 for j in range(len(grid[0]))]for i in range(len(grid))] dp[0][0]=grid[0][0]原创 2020-10-29 22:49:58 · 149 阅读 · 0 评论 -
leetcode-单调栈/单调队列
接雨水https://blog.csdn.net/meng_xin_true/article/details/108136941原创 2020-10-27 20:29:22 · 806 阅读 · 1 评论 -
leetcode-抽样算法
384. 打乱数组class Solution(object): def __init__(self, nums): """ :type nums: List[int] """ self.nums = nums def reset(self): """ Resets the array to its original configuration and return原创 2020-10-20 23:06:49 · 378 阅读 · 0 评论 -
leetcode-最大最小问题-v2
300. 最长上升子序列class Solution(object): def lengthOfLIS(self, nums): """ :type nums: List[int] :rtype: int """ if nums== []: return 0 dp=[1 for _ in range(len(nums))] for i in range(l原创 2020-10-18 11:54:30 · 335 阅读 · 0 评论 -
leetcode-dfs-v2
dfs包括回溯和普通的深度优先搜索。回溯51. N 皇后https://blog.csdn.net/u013075024/article/details/96484855class Solution(object): def solveNQueens(self, n): board, ret = [['.'] * n for _ in range(n)], [] self.dfs(board, n, 0, ret) return r.原创 2020-10-18 10:10:01 · 329 阅读 · 2 评论 -
leetcode-字符串-v2
151. 翻转字符串里的单词原创 2020-10-17 18:45:51 · 170 阅读 · 3 评论 -
哈希表的机制
https://zhuanlan.zhihu.com/p/30344731原创 2020-10-13 14:41:13 · 109 阅读 · 0 评论 -
leetcode-树-v2
96. 不同的二叉搜索树https://leetcode-cn.com/problems/unique-binary-search-trees/solution/shou-hua-tu-jie-san-chong-xie-fa-dp-di-gui-ji-yi-h/95. 不同的二叉搜索树 IIhttps://leetcode-cn.com/problems/unique-binary-search-trees-ii/solution/bu-tong-de-er-cha-sou-suo-shu-i原创 2020-10-10 23:19:54 · 336 阅读 · 0 评论 -
leetcode-链表
206. 反转链表https://leetcode-cn.com/problems/reverse-linked-list/solution/tu-jie-liu-cheng-python3die-dai-xiang-jie-by-han-h/# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next =原创 2020-09-28 09:30:56 · 181 阅读 · 1 评论 -
leetcode-分冶法/递归
快速排序归并排序一个数组分成左右两部分,左边排好序,右边排好序,再做一个两个有序数组的合并23. 合并K个升序链表# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def mergeKLists(s.原创 2020-09-26 22:59:28 · 576 阅读 · 3 评论 -
从3sum开始-双指针
16. 最接近的三数之和class Solution(object): def __init__(self): self.ans=0 def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ diff=float("inf")原创 2020-09-26 15:58:46 · 302 阅读 · 0 评论 -
二分查找
4. 寻找两个正序数组的中位数原创 2020-09-22 23:03:15 · 153 阅读 · 0 评论 -
热门困难题
4. 寻找两个正序数组的中位数二分法,等价于找有序数组中第k大的数。https://leetcode-cn.com/problems/median-of-two-sorted-arrays/solution/di-k-xiao-shu-jie-fa-ni-zhen-de-dong-ma-by-geek-8m/折半删除。class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: Li.原创 2020-09-21 23:09:15 · 287 阅读 · 0 评论