![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
文章平均质量分 58
Alex_SCY
普通大学生记录计算机学习之路,小白的进阶之路。学习过程仅供参考,欢迎交流。
展开
-
343. 整数拆分
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。思路:dp定义:dp[i]代表数字i拆分的最大乘积。递推公式:dp[i]=max1≤j≤i−2(dp[i],max(j∗(i−j),j∗dp[i−j]))dp[i]=max_{1\le j\le i-2}(dp[i],max(j*(i-j),j*dp[i-j]))dp[i]=max1≤j≤i−2(dp[i原创 2022-01-18 23:53:18 · 358 阅读 · 0 评论 -
【LeetCode】343.整数拆分
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。思路:dp定义:dp[i]代表数字i拆分的最大乘积。递推公式:dp[i]=max1≤j≤i−2(dp[i],max(j∗(i−j),j∗dp[i−j]))dp[i]=max_{1\le j\le i-2}(dp[i],max(j*(i-j),j*dp[i-j]))dp[i]=max1≤j≤i−2(dp[i原创 2022-01-18 22:05:04 · 465 阅读 · 0 评论 -
【Leetcode】63. 不同路径 II
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。示例 1:输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:原创 2022-01-18 22:53:48 · 277 阅读 · 0 评论 -
【LeetCode】746.使用最小花费爬楼梯
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。示例 1:输入:cost = [10,15,20]输出:15解释:你将从下标为 1 的台阶开始。支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15 。代码:class Solution {public: int minCostCl原创 2022-01-18 21:33:20 · 322 阅读 · 0 评论 -
【LeetCode】453.无重叠区间
给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。思路:按照右边界排序,就要从左向右遍历,因为右边界越小越好,只要右边界越小,留给下一个区间的空间就越大,所以从左向右遍历,优先选右边界小的。右边界排序之后,局部最优:优先选右原创 2022-01-18 04:18:12 · 312 阅读 · 0 评论 -
【LeetCode】452.用最少数量的箭引爆气球
在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭原创 2022-01-18 03:47:42 · 281 阅读 · 0 评论 -
LeetCode学习之路(C++)——栈和队列(4)
Leetcode 题解 - 栈和队列目录Leetcode 题解 - 栈和队列232. 用栈实现队列2. 用队列实现栈3. 最小值栈4. 用栈实现括号匹配5. 数组中元素与下一个比它大的元素之间的距离6. 循环数组中比当前元素大的下一个元素232. 用栈实现队列232. Implement Queue using Stacks (Easy)Leetcode / 力扣class MyQueue {public: stack<int> temp,s; /** Initia原创 2021-02-26 19:18:36 · 123 阅读 · 0 评论 -
LeetCode学习之路(C++)——字符串(3)
Leetcode 题解 - 字符串目录Leetcode 题解 - 字符串4. 两个字符串包含的字符是否完全相同5. 计算一组字符集合可以组成的回文字符串的最大长度6. 字符串同构7. 回文子字符串个数8. 判断一个整数是否是回文数9. 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数4. 两个字符串包含的字符是否完全相同242. Valid Anagram (Easy)Leetcode / 力扣s = "anagram", t = "nagaram", return true.s原创 2021-02-22 21:13:51 · 192 阅读 · 0 评论 -
LeetCode学习之路(C++)——数组与矩阵(2)
Leetcode 题解 - 数组与矩阵目录Leetcode 题解 - 数组与矩阵1. 把数组中的 0 移到末尾2. 改变矩阵维度3. 找出数组中最长的连续 14. 有序矩阵查找5. 有序矩阵的 Kth Element6. 一个数组元素在 [1, n] 之间,其中一个数被替换为另一个数,找出重复的数和丢失的数7. 找出数组中重复的数,数组值在 [1, n] 之间8. 数组相邻差值的个数9. 数组的度10. 对角元素相等的矩阵11. 嵌套数组12. 分隔数组1. 把数组中的 0 移到末尾283. Move原创 2021-02-16 01:37:52 · 232 阅读 · 0 评论 -
LeetCode学习之路(C++)——链表(1)
Leetcode 题解 - 链表Leetcode 题解 - 链表1. 找出两个链表的交点2. 链表反转3. 归并两个有序的链表4. 从有序链表中删除重复节点5. 删除链表的倒数第 n 个节点6. 交换链表中的相邻结点7. 链表求和8. 回文链表9. 分隔链表10. 链表元素按奇偶聚集链表是空节点,或者有一个值和一个指向下一个链表的指针,因此很多链表问题可以用递归来处理。1. 找出两个链表的交点160. Intersection of Two Linked Lists原创 2021-02-13 00:57:32 · 230 阅读 · 0 评论