- 博客(9)
- 收藏
- 关注
原创 动态规划小点-01背包详解
那么翻译一下这段话:面前一堆东西,各不重样,你【选择】拿什么放进你容量有限的包,从而得到【结果】,找出这群结果中价值最大的那一种【选择】。桌上的物品,这里可以把他们都看成是连续放在一起的,比如你可以想象,一张长条形的餐桌。要是我包的容量根本放不下我眼前的物品了我又怎么需要花时间去考虑我到底要不要装它呢?首先上来一句话,我个人感觉动态规划最重要的两点,就是【选择】和【结果】。同时还有个东西在限制我,我的包【容量】够不够让我去考虑这个当前的物品。要是我背包的容量都不够装这个,我只能【放弃】【选择】!
2025-04-14 16:18:01
249
原创 递归入门——教你从小白开始学习递归
递归函数对吧?干嘛的?反转链表返回啥?返回翻转后的头结点的地址。那么翻转后的头结点的地址是啥?那不就是原本的尾节点吗?
2025-04-04 22:55:08
468
原创 说人话的leetcode.020 you
如果发现有括号了,你就看着顺序是不是和你想的一样,也就是看栈上的第一个东西是不是遍历到的这个字符。强调的是我一定的按照顺序匹配,什么时候左括号来了,反过来什么时候右括号出了。也就是说你明白,根据左括号的顺序,你心里知道其对应的有效括号的顺序是啥样。那么还是前面那句话,左括号什么时候进的,右括号就反过来什么时候出。那是不是说,只要这个顺序不是你想的顺序,那他就不是有效括号?但是哈希有个问题,三种结构,数组,set,map。如果说是左括号,就生成你心中觉得的顺序,即压栈。没顺序啊,不够体现这种括号的匹配。
2025-03-24 22:42:17
228
原创 说人话的leetcode.049 字母异位词分组
sort()是 C++ 标准库中的一个排序函数,可以快速将数组、容器(如vector)中的元素按照你想要的顺序排列。将[3,1,4,2]排序为[1,2,3,4](升序)将排序为(字典序)所以你看,这玩意多智能?#include <algorithm> // 必须包含这个头文件// 使用标准命名空间sort(起始地址, 结束地址的下一位, 比较函数(可选));起始地址:要排序的第一个元素的位置(指针或迭代器)结束地址的下一位:要排序的最后一个元素的下一个位置比较函数(可选)
2025-03-24 22:05:39
863
原创 说人话的leetcode.242 有效的字母异味词
一个是把每一位的标志用数组存起来,还有一种是创建其中一个字符串的拷贝,找到一个删一个,我觉得这个比较简单。这里其实用数组很方便,因为26个字母是连续的,且ASCII码也是连续的。所以第一次遍历s,哪个元素出现就在其对应的数组位置上加1。一加一减,要是相同的话,这个哈希数组的每一项应该都是0。第二次遍历t,哪个元素出现就在其对应的数组位置上减1。所以其实建一个英文字母表就是,0对应a,15对应z。先不管进阶,也不管学没学过哈希,暴力解法怎么解?常见的哈希结构就三个,数组,map,set。
2025-03-10 11:37:10
294
原创 说人话的leetcode.086——分隔链表
因为断开了的话,cur该去哪呢?可能还有点不那么完美的地方,留给读者大神们自行更正了抱拳!上面里面我们是手动让cur位移去下一个的,位移完了才断开。一直到原本的链表拆完了,这下左右两条链表都结束了。首先我们先有一个游标,指针cur从第一个节点开始。拆下来,看,如果他比目标值小,挂在左边的新链表上。然后把左右链表,左边链表的尾连右链表的头。这题目其实我觉得不难,最关键的点是什么?这就是链表灵活的地方。到这里基本上这题目就结束了。如果大,放在右边的新链表上。如果你还没明白那我们继续。所以都可以,看你自己喜好。
2025-03-08 17:04:43
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人