自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 代码随想录算法训练营第38天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

今天开始刷动态规划的内容啦!!

2023-06-16 21:46:39 203

原创 代码随想录算法训练营第34、35、36、37天 | 贪心算法

设一个sum_5,sum_10,如果碰到了10元的,那么就是sum_5减一,sum_10加一,如果碰到了20元的,那么就先判断一下10元的还有没有,如果没有了,那么就减少三张5元的,如果有,就减少一张10元的,一张5元的。2.再次排序,如果此时k已经等于0了,那么直接返回就可以了,如果k此时还不等于0,就看看是奇数还是偶数,如果是偶数,也可以直接返回,如果是奇数,那么反转最前面的那一个(最小的一个)。从右到左,如果前一个比当前的大,那么就要将前一个减1,当前的位数变为9。如果不大于,那么就继续。

2023-06-15 21:16:57 182

原创 代码随想录算法训练营第32天 | 122.买卖股票的最佳时机II 、55. 跳跃游戏、45.跳跃游戏II

这道题的话,可以今天买了,然后明天卖掉,看一下,如果盈利了,那就将利润加入到sum之中,最后返回sum就好。这个问题可以转换为跳跃覆盖范围可不可以覆盖到终点,每次取最大跳跃步数,最后取得整体最大覆盖范围。

2023-06-10 20:21:34 161

原创 代码随想录算法训练营第31天 | 455.分发饼干、376.摆动序列、53.最大子序和

昨天结束了回溯算法的刷题,今天开始刷贪心算法的题目。

2023-06-09 22:26:50 159

原创 代码随想录算法训练营第30天 | 重新安排行程

今天做一道困难题。

2023-06-08 21:47:43 142

原创 代码随想录算法训练营第28、29天 | 93.复原IP地址、78.子集、90.子集||、491.递归子序列、46.全排列、47.全排列||

从头开始,一个位数一个位数往后,如果当前数字附和ip的要求,就在后面加一个‘.’,如果点到了4个,就判断一下现在的下标是不是和s的长度一样,如果一样,那么就push进res。结合上面两道题,使用unordered_set去重,uset标记未使用的数字。这里要用unordered_set,查找重复元素,进行去重。这道题要用到去重,但是没法使用之前的去重点睛之笔,为什么?因为这道题不是有序的,所以我们没法使用i>idx。使用uset数组记录nums[i]的使用情况。

2023-06-07 21:00:36 80

原创 代码随想录算法训练营第二十七天 | 39.组合总和、40.组合总和||、131.分割回文串

思路和上一道题一样,只是需要注意一个点,不可以有重复组合,那么我们先进行排序,然后进行一步点睛之笔。string.substr()可以用来切割字符串。切记切记,这里是i+1,不是idx+1。

2023-06-05 22:45:36 69

原创 代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合

【代码】代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合。

2023-06-04 09:51:48 65

原创 代码随想录算法训练营第二十四天 | 回溯算法

昨天我们结束了二叉树的刷题,从今天起开始了回溯算法的刷题,今天是一道基础的回溯题目。

2023-06-02 19:30:12 161

原创 代码随想录算法训练营第22、23天 | 二叉树完结

终于把时间调整过来了,今天也把二叉树完结掉。

2023-06-01 22:06:19 91

原创 代码随想录算法训练营第20-21天 | 反思与两日日刷题

果然,习惯的养成,在第三周的时候是个坎,已经紧跟代码随想录三周了,没想到第三周刚开始就断了。但是幸好及时调整过来了,从今天开始继续写。

2023-05-31 22:09:29 67

原创 代码随想录算法训练营第十八天 | 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树

用层序遍历,每次遍历记录该层的第一个点res,然后结束遍历的时候,返回刚刚更新的res,就是结果了。

2023-05-27 22:03:04 70

原创 代码随想录算法训练营第十七天 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

如果求树的深度,是从上往下求,不断判断根的左右子树的情况;求树的高度,则是从下往上,一点点求。对这个题来说的话,可以从下往上,让左右子树的高度相减,如果差值大于1了,那么就返回-1。树的高度和树的深度,有很大的区别,树的高度库里结尾从下向上的,树的深度则是从上到下的。当这个节点是叶子结点时,就将这个路径上的所有节点都push进结果中。借此回忆一下stoi,stol,stoll。学到了to_string,把数字变成字符。是左节点,且没有孩子了。

2023-05-26 21:26:37 72

原创 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

如果左子树存在右子树不存在,那么应该返回的是 1 + leftdepth,反之同理。

2023-05-25 21:38:52 74

原创 代码随想录算法训练营第十五天 | 102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

就把没个节点的左右孩子节点swap一下就可以了。使用队列,逐层放入队列中,然后出队。

2023-05-24 19:58:55 92

原创 代码随想录算法训练营第十四天 | 二叉树的遍历

不知不觉参加代码随想录的算法训练营已经两周了,今天进度也是到达了树。今天是基础的二叉树的遍历,分为前序遍历,中序遍历,后序遍历。方法主要有两种,第一种是,第二种是。

2023-05-23 21:13:47 107

原创 代码随想录算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素

好家伙,是一道困难题,这是算法训练营开始以来遇到的第一道困哪题,但是还好是滑动窗口,并不是特别的难。

2023-05-22 22:10:26 77

原创 代码随想录算法训练营第十一天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项 、 150. 逆波兰表达式求值

如果出现左括号,就push对应的右括号进来,然后遇到右括号,如果和栈顶相同,那就让栈顶出站,如果不同,那就直接返回false。还是运用栈的思想,这个栈只储存数字,如果遇到了+-*/,那么就将栈顶两个元素出栈,然后进行计算即可。如果当前的元素等于栈顶元素,那么就将栈顶出栈。1047. 删除字符串中的所有相邻重复项。stoi可以将字符直接变为数字。150. 逆波兰表达式求值。

2023-05-20 22:18:19 73

原创 代码随想录算法训练营第十天 | 232.用栈实现队列、225.用队列实现栈

在pop操作时,我在想为什么还要判断输出栈为空,一股脑直接把输入栈的push进输出栈不可以吗?思考之后发现是不可以的,因为此时输出栈的栈顶元素是队列的第一个元素,如果不判断输出栈是否为空就直接push进来的话,栈顶元素就会被更新,替换为其他元素,那么队列的第一个元素也就发生了改变,那么pop的话就会出错。今天的两道题虽然平常使用不到的,但是还是蛮磨炼思维的。

2023-05-19 19:38:58 95 1

原创 代码随想录算法训练营第九天 | 28. 实现 strStr()、459.重复的子字符串

第一种就是求kmp算法中的next数组,if(next[s.size()-1]!=-1&&(s.size()%(s.size()-next[s.size()-1]-1))==0)成立的话,就可以返回true。第二种方法更有意思,一个新字符串由两个s组成,然后去掉第一个元素,在这个新字符串中查找s,如果查找到的位置在s.size(),那就说明找不到,否则就是找到了。这道题蛮有意思,有两种做法。

2023-05-18 21:46:42 84 1

原创 代码随想录算法训练营第八天 | 344.反转字符串、541.反转字符串II、剑指offer 05.替换空格、151.翻转字符串里的单词、剑指offer58-II.左旋转字符串

一天做了五道题,还好这几道题还算比较简单。

2023-05-17 22:08:21 91 1

原创 代码随想录算法训练营第七天 | 454.四数相加II 、383.赎金信、15.三数之和、18.四数之和

454.四数相加II454.四数相加II。

2023-05-16 20:07:51 150 2

原创 代码随想录算法训练营第六天 | 242.有效的字母异位词、 349. 两个数组的交集、202. 快乐数 、 1. 两数之和

第二个for循环时,应该是i<26,这样子才是遍历整个数组。我第一次做题时i<s.size(),导致错误发生nums3.find()返回的是一个迭代器,如果没有找到,那就会返回nums3.end()这个迭代器,所以可以用来判断是否找到学到了vector返回时格式应该是{xx,xx}。忘记迭代器怎么拼写时,就是用auto。

2023-05-15 22:22:01 54 1

原创 6-1 线性探测法的查找函数

其中HashTable#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 *//* 关键词类型用整型 *//* 散列地址类型 *//* 数据所在位置与散列地址是同一类型 *//* 散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素 *//* 散列表单元类型 *//* 存放元素 *//* 单元状态 *//* 散列表类型 */struct TblNode { /* 散列表结点定义 *//* 表的最大长度 */

2023-05-14 17:26:41 2805

原创 代码随想录算法训练营第四天 | 24.两两交换链表的节点、19.删除链表的倒数第N个节点、142.环形链表II

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2023-05-13 20:31:32 255 1

原创 代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206.反转链表

给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。

2023-05-12 19:20:30 80 1

原创 代码随想录算法训练营第二天 | 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给定一个含有 n 个正整数的数组和一个正整数 target。这是一道经典题目了,只需要暴力,像转圈一样,把二维数组填满即可。所有元素,且元素按顺时针顺序螺旋排列的。将负数元素平方,与正数元素比较,组成的新数组,要求也按。

2023-05-11 19:14:41 346 2

原创 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

2023-05-10 20:31:51 525 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除