![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
PUdd
不学无术不发愁
展开
-
关于递归的返回值传递
写树里面递归的时候( leetcode 112.路径总和)遇到的递归返回值传递问题原创 2023-11-13 16:36:32 · 245 阅读 · 0 评论 -
leetcode-二叉树
代码随想录,二叉树部分,已完结原创 2023-10-29 20:54:52 · 254 阅读 · 0 评论 -
leetcode-栈与队列
代码随想录,栈与队列部分原创 2023-10-29 20:32:09 · 141 阅读 · 0 评论 -
leetcode-字符串
代码随想录,字符串部分原创 2023-10-29 20:21:24 · 110 阅读 · 0 评论 -
leetcode-链表
代码随想录,链表部分原创 2023-10-29 20:08:11 · 223 阅读 · 0 评论 -
leetcode-哈希表
代码随想录哈希表部分原创 2023-10-29 19:58:25 · 153 阅读 · 0 评论 -
leetcode-数组
代码随想录数组板块原创 2023-10-29 19:52:43 · 162 阅读 · 0 评论 -
LeetCode 剑指 Offer 24. 反转链表
没写head->next == nullptr的教训原创 2023-05-27 17:18:14 · 110 阅读 · 1 评论 -
01背包问题-递推公式的自我理解与LeetCode 416. 分割等和子集
看了好多博客,对二维dp数组的理解都是直接搬了代码随想录,搬了随想录又没详细解释,放上一些自己的理解原创 2023-05-27 15:41:49 · 875 阅读 · 0 评论 -
LeetCode 96.不同的二叉搜索树
本题主要是递推关系的规律。将dp[n]分为头节点为1,2,…,n的和;而对于每一个头节点j,说明左边j-1个节点方法,右边i-j个节点方法,相乘。用特值代入检验一下。这也就连带着推出了初始化的时候dp[0]=1。原创 2023-05-20 14:53:20 · 41 阅读 · 0 评论 -
343. 整数拆分
首先,j的范围:j肯定是从1开始,因为dp[i]是可以分为1和i-1的;其次,j的上界:j是可以到达i-1的,但是这样就会拆出来一个1,导致dp[i]=dp[i-1],所以如果能证明dp[i]始终>dp[i-1]就可以把等号去掉,此处我没去掉;能否进一步变成i/2这种上界:不能,因为拆出来的j有可能就是i-1这种值;最后,递推公式:max(现在的值(vector初始值已经设为0,故可直接用);拆出来的j×dp[i-j];①dp(n+1):0~n,要求dp[n]自然是n+1个元素。⑤最让人头疼的递推公式。原创 2023-04-21 22:10:45 · 81 阅读 · 0 评论 -
LeetCode 63. 不同路径 II
一个机器人位于一个 m x n 网格的左上角 。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?【动态规划】【初始化trick--for循环的停止】【vector表示二维数组与int[][]的区别】原创 2023-04-19 11:13:08 · 383 阅读 · 0 评论 -
LeetCode 62. 不同路径
排列组合公式vs动态规划,动态规划完胜原创 2023-03-16 14:52:31 · 46 阅读 · 0 评论 -
LeetCode 746. 使用最小花费爬楼梯
接着斐波那契&爬楼梯的一道动态规划题。原创 2023-03-15 10:49:46 · 62 阅读 · 0 评论 -
LeetCode 509. 斐波那契数
作为动态规划开篇,使用代码随想录“动态规划”的套路进行解题:1. 确定dp数组(dp table)以及下标的含义2. 确定递推公式3. dp数组如何初始化4. 确定遍历顺序5. 举例推导dp数组。原创 2023-03-14 18:23:21 · 76 阅读 · 0 评论 -
LeetCode121. 买卖股票的最佳时机
从前到后遍历一遍,遍历每个点的时候都更新一遍当前的最小值和当前的利润,记录正在遍历的点之前能够取得的最大利润。原创 2023-03-11 11:24:34 · 45 阅读 · 0 评论 -
LeetCode 2549. 统计桌面上的不同数字
任何数模1都等于自身。1%1==1。原创 2023-02-04 15:11:32 · 131 阅读 · 0 评论 -
LeetCode 剑指 Offer 06. 从尾到头打印链表
从前往后遍历链表,然后用vector的定点插入操作直接插入。在此基础上,利用前几天学的go语言的通用方法进行性能提升。原创 2023-02-02 23:16:56 · 55 阅读 · 0 评论 -
LeetCode 剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )原创 2023-02-02 17:32:26 · 325 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。原创 2023-01-10 20:09:36 · 45 阅读 · 0 评论 -
LeetCode 278. 第一个错误的版本
最近一周在做二分查找的专项训练,这个题是接着上个二分查找做的。这个题没有直接给mid=一个值,而是给了一个mid的判断条件。溢出的问题。我是直接用long long 做了,但是看到评论区解决问题的方法还有mid = left + (right - left)/2,或者使用右移运算符>>,写成mid=(left+right)>>1,mid=(left+right)>>1相当于mid=(left+right)/2,但是比除2运算要快。原创 2023-01-10 13:36:05 · 55 阅读 · 0 评论 -
LeetCode 704. 二分查找
简单二分查找,left和right需要记得等于mid+1或mid-1,判断while条件也需要带上等号原创 2023-01-09 22:58:18 · 49 阅读 · 0 评论 -
LeetCode 1710. 卡车上的最大单元数
先排序(一个自定义函数排序)。先排序(一个自定义函数排序)。1. 自定义函数:使用匿名函数。2. vector中的back:最后一个元素原创 2022-11-15 22:24:07 · 112 阅读 · 0 评论 -
LeetCode 790. 多米诺和托米诺平铺
动态规划经典题目;含代码中存在的一些知识性问题(双层vector内外同时定义元素个数、转移方程中就取模等问题)原创 2022-11-12 15:54:21 · 585 阅读 · 0 评论 -
LeetCode 1800. 最大升序子数组和
【动态规划经典题,从这里入门】原创 2022-10-25 23:47:11 · 60 阅读 · 0 评论 -
LeetCode 1768. 交替合并字符串
给你两个字符串 word1 和 word2。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串。原创 2022-10-23 14:52:45 · 82 阅读 · 0 评论 -
LeetCode 1700.无法吃午餐的学生数量
【学生在队列的相对位置不影响整个过程!】以及我的踩坑:1. while与for循环;2. end迭代器是不指向任何元素的,最后一个元素实际上是end()-13. 迭代器失效原创 2022-10-19 19:31:03 · 464 阅读 · 0 评论 -
LeetCode 1652. 拆炸弹
1.官方题解:扩容&滑动窗口,确定左端点和右端点2 我的解法:取模发现问题:C++中的问题:-1% 10 会输出 -1原创 2022-09-24 14:40:55 · 180 阅读 · 0 评论 -
LeetCode 1640. 能否连接形成数组
使用vector作答1. 建立一个大小为101(存0~100)的nums数组,开始全设为-12. arr中只要出现过某个字符,就把nums中这一位置为arr中的顺序3. 对于pieces数组,首先验证只有一位的在不在arr中,其次验证不止一位的顺序对不对。原创 2022-09-22 09:11:47 · 56 阅读 · 0 评论 -
LeetCode 1624. 两个相同字符之间的最长子字符串
思路空间换时间,存了3个26位的数组,temp[26]记录每个字符目前为止最大的间隔。(这一道题一直被我错误地理解成 子字符串中不能够出现两端的相同字符,导致运行时错了无数次还在凌乱…)解答class Solution {public: int maxLengthBetweenEqualCharacters(string s) { vector<int> oldA(26,-1); vector<int> newA(26,0)原创 2022-09-21 13:05:49 · 115 阅读 · 0 评论 -
LeetCode 1619. 删除某些元素后的数组均值
给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。与 标准答案 误差在 10^-5 的结果都被视为正确结果。今天的每日一题,没啥好说的,先排序再求和。原创 2022-09-14 18:46:57 · 93 阅读 · 0 评论 -
LeetCode 242. 有效的字母异位词
借鉴了做过的题目LeetCode 387. 字符串中的第一个唯一字符,建立26个字母的数组character[26];也可以使用sort比较排序完的两个字符串是否相等。原创 2022-09-14 00:15:09 · 90 阅读 · 0 评论 -
LeetCode 1403. 非递增顺序的最小子序列
给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。本题使用了vector的sort、accumulate操作(因为只使用了两个参数没跑起来,经室友提醒才写对了),第一次使用了逆向迭代器,以及使用了vector的复制操作(只截取部分)。原创 2022-09-12 12:46:19 · 67 阅读 · 0 评论 -
LeetCode 1598. 文件夹操作日志搜集器
本来老老实实用的stack做的,但是后来发现可以直接使用int类型的ans记录层数,无需返回栈中的值。本题复习了一下stack的创建,以及stack的判空/push/pop/求大小操作;以及发现C++ 11 新特性中的增强型for循环中还能用string,其余都是简单操作。原创 2022-09-12 12:16:26 · 223 阅读 · 0 评论 -
LeetCode 292. Nim 游戏
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false。链接:https://leetcode.cn/problems/nim-game。原创 2022-08-24 00:27:18 · 53 阅读 · 0 评论 -
LeetCode LCP 01. 猜数字
建议将这道题变为LC第一题,来给诸多新人们找找自信……原创 2022-08-22 17:13:45 · 57 阅读 · 0 评论 -
LeetCode 面试题 01.01. 判定字符是否唯一
方法1. 存入自动删除重复元素的数据结构set,判断长度是否变短了。方法2. 哈希表方法3. 先排序,用string的排序做方法4. 位运算(本题想考察的东西)原创 2022-08-22 16:38:54 · 136 阅读 · 0 评论 -
LeetCode 26. 删除有序数组中的重复项
1.由于set数据结构本身具有不重复、已排序的性质,故将vector中所有元素依次存入set;而因为题意要求要改变nums数组,故将set中的元素依次再覆盖nums数组前面的各元素即可;2.复习了LeetCode 27.移除元素的双指针法,其实题和方法是一模一样的。原创 2022-08-20 14:26:03 · 174 阅读 · 0 评论 -
LeetCode 20. 有效的括号
对于字符串s从前向后遍历。当遍历到三种右括号时,从该字符向前查找是否有配对的左括号,如果有则改成a。也即:[]->aa最后遍历一遍,如果该字符串里面有不是a的,就return false(说明没全部配对成功)...原创 2022-08-16 15:00:36 · 298 阅读 · 0 评论 -
LeetCode 21. 合并两个有序链表
本题主要熟悉了链表的创建和插入操作,此方法用到了头插/尾插,当时还忘记了next=nullptr.链表的创建用了c风格的malloc,在迭代法中使用了new。原创 2022-08-14 01:11:14 · 61 阅读 · 0 评论