
LeetCode
文章平均质量分 87
LeetCode
myaijarvis
开发不会,机器不学,自然语言不理
欢迎一起讨论O_o
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Python】【LeetCode】数据结构(重要)
可以和列表一样切片访问。原创 2022-07-25 23:07:58 · 742 阅读 · 0 评论 -
【算法】【 LeetCode】线段树
关于各类「区间和」问题如何选择解决方案(含模板)-区域和检索-数组可修改-力扣(LeetCode)】线段树详解「汇总级别整理🔥🔥🔥」-我的日程安排表I-力扣(LeetCode)】动态开点模板。原创 2022-07-23 17:30:58 · 829 阅读 · 0 评论 -
【LeetCode】【SQL】刷题笔记
code格式规范: 列名最好和表中的列名一样(大小写一样) 参考资料:官方文档:【参考:MySQL :: MySQL 5.7 参考手册 :: 13 SQL 语句】【参考:SQL中的谓词 - 知乎】题目以类型归类,记录常用且易错的类型【参考:584. 寻找用户推荐人 【比官方细,千字干货!】(三值运算,NULL) - 寻找用户推荐人 - 力扣(LeetCode)】【参考:584. 寻找用户推荐人 - 简单 - 力扣(LeetCode)】 多表查询 【参考:183. 从不订购的客户 - 力扣(LeetCod原创 2022-06-29 21:08:06 · 507 阅读 · 0 评论 -
【LeetCode】会议调度问题 (动态规划)
【参考:会议室调度算法集锦_阿飞算法的博客-CSDN博客】 1751. 最多可以参加的会议数目 II hard 【参考:1751. 最多可以参加的会议数目 II - 力扣(LeetCode)】 【参考:【阿飞算法】畅游面试中的动态规划套路-最多可以参加的会议数目 II - 最多可以参加的会议数目 II - 力扣(LeetCode)】 循序渐进 自顶向下记忆化递归 memo[curr][k] : 表示处理到编号curr这个会议,还剩余k次参加会议机会所能获取的价值的最大值 class Solution {原创 2022-05-15 14:04:31 · 1728 阅读 · 0 评论 -
【LeetCode】动态规划 编辑距离 字符串 双指针
编辑距离 【参考:代码随想录# 动态规划之编辑距离总结篇# 判断子序列】 72.编辑距离 583.两个字符串的删除操作 392.判断子序列 392. 判断子序列 easy 【参考:392. 判断子序列 - 力扣(LeetCode)】 【参考:代码随想录# 392.判断子序列】 这道题应该算是编辑距离的入门题目,因为从题意中我们也可以发现,只需要计算删除的情况,不用考虑增加和替换的情况。 dp[i][j] 表示以下标 i-1 为结尾的字符串 s,和以下标 j-1 为结尾的字符串 t,相同子序列的长度为原创 2022-05-14 16:27:09 · 359 阅读 · 0 评论 -
【LeetCode】数学
等差数列 390. 消除游戏 - medium 【参考:390. 消除游戏 - 力扣(LeetCode)】 纯模拟会超时 class Solution { public int lastRemaining(int n) { List<Integer> list=new ArrayList<>(); for(int i=0;i<n;i++){list.add(i+1);} int d=0; while(tru原创 2022-05-12 16:51:23 · 493 阅读 · 0 评论 -
【算法】二分答案 洛谷 LeetCode
总结 【参考:我写了首诗,让你闭着眼睛也能写对二分搜索 :: labuladong的算法小抄】 有序数组 nums = [1,2,2,2,3],target 为 2,此算法返回的索引是 2,没错。但是如果我想得到 target 的左侧边界,即索引 1,或者我想得到 target 的右侧边界,即索引 3, 中间的 int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(l原创 2022-02-22 22:10:01 · 744 阅读 · 0 评论 -
【leetcode】贪心
说实话贪心算法并没有固定的套路。 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心。 简单 455. 分发饼干 class Solution { public int findContentChildren(int[] g, int[] s) { Arrays.sort(g); Arrays.sort(s); int result=0; int j=0; // 遍历饼干 先用原创 2021-11-29 20:27:40 · 155 阅读 · 0 评论 -
【leetcode】栈与队列
参考自 代码随想录 总结 学会逆向思维 比如225. 用队列实现栈: 入栈操作时,首先获得入栈前的元素个数 n,然后将元素入队到队列,再将队列中的前 n 个元素(即除了新入栈的元素之外的全部元素)依次出队并入队到队列,此时队列的前端的元素即为新入栈的元素,且队列的前端和后端分别对应栈顶和栈底。 比如20. 有效的括号: 在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了。可以大幅度简化代码 简单 232. 用栈实现队列 参考:232. 用栈实现队列 - 力扣(LeetCode) c原创 2022-01-20 13:58:10 · 178 阅读 · 0 评论 -
【leetcode】BFS DFS (图论)
总结 套路:图论算法基础(修订版)_ labuladong DFS 应用:二叉树搜索,图搜索 回溯法=DFS+剪枝 DFS:每一条路径走完再回溯 BFS … //938.二叉搜索树的范围和 public int rangeSumBST(TreeNode root, int low, int high) { if(root==null) return 0; int result=0; Queue<TreeNode> queue=new Lin原创 2021-12-21 16:07:40 · 510 阅读 · 0 评论 -
【leetcode】字符串(KMP、滑动窗口)算法
参考自 代码随想录 Java、Python的String字符串是不可变的 KMP 实例:28. 实现 strStr - 力扣(LeetCode) 参考:有限状态机之 KMP 字符匹配算法 :: labuladong的算法小抄 用一个二维的 dp 数组(但空间复杂度还是 O(M)),重新定义其中元素的含义. 视频必看 参考:帮你把KMP算法学个通透!(理论篇)_哔哩哔哩_bilibili 参考:帮你把KMP算法学个通透!(求next数组代码篇)_哔哩哔哩_bilibili 前缀表不减一也不右移 容易理解 h原创 2022-01-18 15:49:59 · 873 阅读 · 0 评论 -
【leetcode】哈希表
本章节来自 参考:代码随想录 总结 两数之和 就不能使用双指针法,因为1.两数之和要求返回的是索引下标, 而双指针法一定要排序,一旦排序之后原数组的索引就被改变了。 如果1.两数之和 (opens new window)要求返回的是数值的话,就可以使用双指针法了。 N Sum 问题(N>=2) 参考:一个函数秒杀 2Sum 3Sum 4Sum 问题 采用递归方式,base case是2Sum /* 注意:调用这个函数之前一定要先给 nums 排序 */ vector<vector<i原创 2022-01-16 22:28:59 · 147 阅读 · 0 评论 -
【LeetCode】回溯 N皇后(DFS、子集、组合问题)
技巧: 经常需要一个start来标记开始选择的起始位置来达到去重的目的 C++ 总结了回溯问题类型 带你搞懂回溯算法(大量例题) https://leetcode-cn.com/problems/subsets/solution/c-zong-jie-liao-hui-su-wen-ti-lei-xing-dai-ni-gao-/ ①画出递归树,找到状态变量(回溯函数的参数),这一步非常重要※ ②根据题意,确立结束条件 ③找准选择列表(与函数参数相关),与第一步紧密关联※ ④判断是否需要剪枝 ⑤作原创 2021-11-29 20:28:08 · 448 阅读 · 0 评论 -
【算法】动态规划 && leetcode (递推、斐波那契数变体、打家劫舍问题)
中等 322. 零钱兑换 class Solution { public int coinChange(int[] coins, int amount) { int[] dp=new int[amount+1]; Arrays.fill(dp,amount+1); dp[0]=0; for(int i=1;i<dp.length;i++) for(int coin:coins)原创 2021-11-29 20:13:58 · 760 阅读 · 0 评论 -
【leetcode】二叉树
Java实现 Python待定 简单 94. 二叉树的中序遍历 数组 递归 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int原创 2021-11-29 20:28:25 · 420 阅读 · 0 评论 -
【leetcode】数组
简单 27. 移除元素 参考:27. 移除元素 - 力扣(LeetCode) 双指针法(快慢指针法) 拷贝覆盖 class Solution { public int removeElement(int[] nums, int val) { int n = nums.length; int left = 0; for (int right = 0; right < n; right++) { if (nums[rig原创 2022-01-13 17:31:37 · 190 阅读 · 0 评论 -
【leetcode】链表 && 双指针
简单 203. 移除链表元素 参考:203. 移除链表元素 - 力扣(LeetCode) 设置虚拟头节点,方便把删除头节点和非头节点的操作统一化 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * L原创 2022-01-13 17:31:50 · 268 阅读 · 0 评论 -
【LeetCode】动态规划 | 线性DP 序列DP(子序列)
博文声明:仅供本人学习交流使用,相关代码和资料已留下引用出处。 公共子序列 子序列定义:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 可以不连续 【参考:【你的衣服我扒了 - 《最长公共子序列》】动态规划 - 不相交的线 - 力扣(LeetCode)】 一般这种求解 两个数组或者字符串 求最大或者最小 的题目都可以考虑动态规划,并且通常都定义 dp[i][j] 为 以 A[i], B[j] 结尾的 xxx 718. 最长重复子数组 1143..原创 2022-05-04 13:32:05 · 905 阅读 · 0 评论 -
【leetcode】二叉树搜索树
简单 中等 剑指 Offer II 054. 所有大于等于节点的值之和 【参考:剑指 Offer II 054. 所有大于等于节点的值之和 - 力扣(LeetCode)】 【参考:所有大于等于节点的值之和 - 所有大于等于节点的值之和 - 力扣(LeetCode)】 方法一:反序中序遍历 本题中要求我们将每个节点的值修改为原来的节点值加上所有大于它的节点值之和。这样我们只需要 反序中序遍历 该二叉搜索树,记录过程中的节点值之和,并不断更新当前遍历到的节点的节点值,即可得到题目要求的累加树。 class原创 2022-04-08 18:54:21 · 263 阅读 · 0 评论 -
【LeetCode】前缀树 Trie
【参考:前缀树算法模板秒杀 5 道算法题__微信公众号】 比较复杂,了解即可 中等 208. 实现 Trie 【参考:208. 实现 Trie - 力扣(LeetCode)】 方法不唯一 【参考:Leetcode 208. 实现 Trie 字典树_哔哩哔哩_bilibili】 【参考:Leetcode 208. 实现 Trie - itdef - 博客园】 代码参考 【参考:Trie Tree 的实现 🌳 - 实现 Trie (前缀树) - 力扣(LeetCode)】 class Trie {原创 2022-04-12 13:40:00 · 136 阅读 · 0 评论 -
【LeetCode】模拟题、枚举
简单 937. 重新排列日志文件 【参考:937. 重新排列日志文件 - 力扣(LeetCode)】 【参考:【宫水三叶】简单排序运用题 - 重新排列日志文件 - 力扣(LeetCode)】 多读几遍题目,代码排序记得写注释 class Solution { class Log { int type, idx;// 日志类型(1是数字日志,0是字母日志) 下标 String ori, sign, content; // 日志 标识符 日志内容 Log(原创 2022-05-03 23:07:12 · 551 阅读 · 0 评论