
LeetCode一刷
文章平均质量分 85
你愿意和我一起清理内存吗?
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
需要复习的简单题
二分法 剑指 Offer 11. 旋转数组的最小数字 class Solution { public: int minArray(vector<int>& numbers) { int low = 0; int high = numbers.size() - 1; while (low < high) { int mid = low + (high - low) / 2;//防止溢出原创 2022-03-22 21:00:30 · 239 阅读 · 0 评论 -
刷力扣中等题
题源:LeetCode 45.跳跃游戏II 贪心,通过局部最优解得到全局最优解。每次在上次能跳到的范围(end)内选择一个能跳的最远的位置(也就是能跳到max_far位置的点)(覆盖了跳得近的点)作为下次的起跳点 。 class Solution { public: int jump(vector<int>& nums) { int step = 0;//跳跃次数 int max_far = 0;//原创 2022-03-04 01:10:13 · 680 阅读 · 0 评论 -
每日刷题计划Day1笔记-字符串
题源:LeetCode 3.无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注原创 2022-01-23 12:30:06 · 465 阅读 · 0 评论 -
每日刷题计划Day[16, 17]-并查集
题源:LeetCode 并查集: 1.将两个集合合并 2.询问两个元素是否在一个集合当中 近乎O(1) 基本思想: 每个集合用一棵树来表示。(用树的方式维护集合,不一定是二叉树。) 每一个集合根节点的编号就是当前节点的编号。 树上每一个节点都存储对应的父节点编号。 问题: 如何判断树根:if(p[x] == x) 如何求x的集合编号:while(p[x] != x) x = p[x]; 如何合并两个集合:p[x]是x的集合编号,p[y]是y的集合编号。p[x] = y。x所在的集合插到y所在的集合上。原创 2022-02-07 19:04:09 · 541 阅读 · 0 评论 -
每日刷题计划Day[14,15]-递归
题源:LeetCode 剑指 Offer 62. 圆圈中最后剩下的数字 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n = 5, m = 3 输出: 3 示例 2: 输入: n = 10, m = 17 输出: 2 限制: 1 &l原创 2022-02-05 15:49:47 · 691 阅读 · 0 评论 -
每日刷题计划Day13-递归
题源:LeetCode LeetCode每日一题: 1725. 可以形成最大正方形的矩形数目 给你一个数组 rectangles ,其中 rectangles[i] = [li, wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。 如果存在 k 同时满足 k <= li 和 k <= wi ,就可以将第 i 个矩形切成边长为 k 的正方形。例如,矩形 [4,6] 可以切成边长最大为 4 的正方形。 设 maxLen 为可以从矩形数组 rectangles 切分得到的 最大正方形 的边长原创 2022-02-04 15:06:15 · 965 阅读 · 0 评论 -
每日刷题计划Day12-递归
题源:LeetCode LeetCode月徽章每日一题 1414. 和为 K 的最少斐波那契数字数目 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 , 其中 n > 2 。 数据保证对于给定的 k ,一定能找到可行解。 示例 1: 输入:k = 7 输出:2 解释:斐波那契数字为:1,1,2,3,5,8,13,…… 对于 k = 7 ,我们可以得到 2 + 5原创 2022-02-03 23:26:18 · 175 阅读 · 0 评论 -
每日刷题计划Day11-字符串+递归
题源:LeetCode LeetCode月徽章每日一题 2000. 反转单词前缀 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。 例如,如果 word = “abcdefd” 且 ch = “d” ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 “dcbaefd” 。 返回原创 2022-02-02 00:36:59 · 2496 阅读 · 0 评论 -
每日刷题计划Day10-字符串+树+递归
题源:LeetCode LeetCode月徽章每日一题 1763. 最长的美好子字符串 当一个字符串 s 包含的每一种字母的大写和小写形式 同时 出现在 s 中,就称这个字符串 s 是美好字符串。比方说,“abABB” 是美好字符串,因为 ‘A’ 和 ‘a’ 同时出现了,且 ‘B’ 和 ‘b’ 也同时出现了。然而,“abA” 不是美好字符串因为 ‘b’ 出现了,而 ‘B’ 没有出现。 给你一个字符串 s ,请你返回 s 最长的 美好子字符串 。如果有多个答案,请你返回 最早 出现的一个。如果不存在美好子字符原创 2022-02-01 14:13:31 · 683 阅读 · 0 评论 -
每日刷题计划Day9-树
题源:LeetCode 226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 方法:递归 这是一道很经典的二叉树问题。显然,我们从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以 root 为根节点的整棵子树的翻转。 class Solution { publ原创 2022-01-31 11:58:27 · 1430 阅读 · 0 评论 -
每日刷题计划Day7-动态规划
题源:LeetCode 416. 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2: 输入:nums = [1,2,3,5] 输出:false 解释:数组不能分割成两个元素和相等的子集。 提示: 1 <= nums.length <= 200 1 <= num原创 2022-01-28 21:52:12 · 490 阅读 · 0 评论 -
每日刷题计划Day5+Day6+Day7+Day8-动态规划+背包问题合集
题源:ACwing 01背包问题 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。 输出格式 输出一个整数,表示最大价值。 数据范围 0<N,V≤1000 0<vi,wi≤100原创 2022-01-27 11:55:29 · 754 阅读 · 0 评论 -
LeetCode 3. Longest Substring Without Repeating Characters.详解+知识点总结+个人感悟(大二寒假)C++ (一刷)
Longest Substring Without Repeating Characters Medium Given a string, find the length of the longest substring without repeating characters. Example 1: Input: “abcabcbb” Output: 3 Explanation: The a...原创 2019-02-20 17:54:02 · 232 阅读 · 0 评论 -
LeetCode 2. Add Two Numbers.详解+知识点总结+个人感悟(大二寒假)C++ (一刷)
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...原创 2019-02-03 17:46:29 · 330 阅读 · 0 评论