自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 @ 代码随想录算法训练营总结篇

不知不觉已经连续刷代码随想录两个多月了,细细想来感慨颇多。因为白天有工作要忙,很多次都刷到十一十二点,当然中间也因为过节应酬之类的暂停一两天,但是总会在之后有闲的时间中把欠下来的作业补上。代码随想录给了我更合理的规划和无形的督促,推着我克服一个有一个算法问题。现在只能说对算法出入门厅吧,以后要多多复习算法的题目,更重要的是保持对算法的热爱,不轻言放弃。

2024-02-29 21:25:48 140

原创 @ 代码随想录算法训练营第9周(C语言)|Day64(单调栈)

找到最大的值heights1[stack[stacktop-1]]然后计算长宽计算最大的矩形。

2024-02-28 23:36:36 371

原创 @ 代码随想录算法训练营第9周(C语言)|Day63(单调栈)

循环就是首尾相接再加一段,一定注意res的空间是2*size。使用的是双指针来做,分别找到i高度两边比其最高的元素,进行高度计算。

2024-02-27 22:52:40 372

原创 @ 代码随想录算法训练营第9周(C语言)|Day62(单调栈)

找当前数组比当前元素大的数,使用单调递增的单调栈。使用hash进行快速查找元素坐标。

2024-02-26 23:00:40 294

原创 @ 代码随想录算法训练营第4周(C语言)|Day25(回溯)

出现错误的原因就是前面全局变量定义过的,就不用再次定义了,负责会出现 store to null pointer of type ‘int’。回溯不难,找对应字母难。

2024-02-25 21:21:07 183

原创 @ 代码随想录算法训练营第4周(C语言)|Day24(回溯)

回溯经典题目。

2024-02-25 21:12:01 220

原创 @ 代码随想录算法训练营第4周(C语言)|Day23(二叉树)

可以通过递归函数的返回值来移除节点。本质就是寻找分割点,分割点作为当前节点,然后递归左区间和右区间。。无。

2024-02-25 21:04:06 349

原创 @ 代码随想录算法训练营第4周(C语言)|Day22(二叉树)

所以当我们从上向下去递归遍历,第一次遇到 cur节点是数值在[q, p]区间中,那么cur就是 q和p的最近公共祖先。终止条件就是找到遍历的节点为null的时候,就是要插入节点的位置了,并把插入的节点返回。五种情况。

2024-02-25 20:50:48 335

原创 @ 代码随想录算法训练营第4周(C语言)|Day21(二叉树)

搜索二叉树对应中序左中右。各个参数有不同的意义。后序遍历(左右中)就是天然的回溯过程,可以根据左右子树的返回值,来处理中节点的逻辑,后续回溯。

2024-02-25 20:14:19 303

原创 @ 代码随想录算法训练营第8周(C语言)|Day60(动态规划)

dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。看似是一个字符串,其实要比较两头,还是两个字符串。dp[i][j]:字符串s在[i, j]范围内最长的回文子序列的长度为dp[i][j]。

2024-02-25 17:43:36 209

原创 @ 代码随想录算法训练营第8周(C语言)|Day59(动态规划)

dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等,所需要删除元素的最少次数。这是只有删除操作的时候。包含插入替换操作之后的编辑距离问题。

2024-02-25 15:35:09 190

原创 @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)

dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。。dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]。

2024-02-23 22:58:36 240

原创 @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)

dp[i][j]:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]。与上题一致。dp[i]:包括下标i(以nums[i]为结尾)的最大连续子序列和为dp[i]。连续的就得包括结尾元素,不连续就不需要了。

2024-02-22 22:40:46 327

原创 @ 代码随想录算法训练营第8周(C语言)|Day56(动态规划)

dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。dp[i]:以下标i为结尾的连续递增的子序列长度为dp[i]。。dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。。

2024-02-21 22:58:57 338

原创 @ 代码随想录算法训练营第8周(C语言)|Day55(动态规划)

四种情况要考虑清楚。和普通股票问题差不多。

2024-02-20 22:40:27 375

原创 @ 代码随想录算法训练营第8周(C语言)|Day54(动态规划)

买两次的股票问题。从2次过度到无数次。

2024-02-20 20:26:01 156

原创 @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)

买卖股票。dp[i][0] 表示第i天持有股票所得现金。dp[i][1] 表示第i天不持有股票所得最多现金。第i-1天就持有股票,那么就保持现状,所得现金就是昨天持有股票的所得现金 即:dp[i - 1][0]。第i天买入股票,所得现金就是昨天不持有股票的所得现金减去 今天的股票价格 即:dp[i - 1][1] - prices[i]。

2024-02-19 20:38:17 372

原创 @ 代码随想录算法训练营第8周(C语言)|Day51(动态规划)

打家劫舍。两种打家劫舍。二叉树加动态规划。

2024-02-18 23:44:55 556

原创 @ 代码随想录算法训练营第8周(C语言)|Day51(动态规划)

多重背包问题。

2024-02-17 22:06:17 283

原创 @ 代码随想录算法训练营第8周(C语言)|Day50(动态规划)

最小完全背包问题。变形版完全背包。

2024-02-17 17:27:28 308

原创 # Day44、动态规划(包含题目 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ )

完全背包组合问题 先物品后背包。完全背包排列问题,先背包后物品。

2024-02-17 15:59:22 159

原创 @ 代码随想录算法训练营第7周(C语言)|Day43(动态规划)

有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。01背包。背包问题。三维01背包。

2024-02-15 22:51:48 246

原创 @ 代码随想录算法训练营第7周(C语言)|Day42(动态规划)

0-1背包问题。

2024-02-15 16:23:34 695

原创 @ 代码随想录算法训练营第7周(C语言)|Day41(动态规划)

递推公式很难想到,n平方的时间复杂度,与下面的题目相似。从以一为根节点到一i为根节点,左右两边不同布局相乘,再依次相加。

2024-02-06 23:26:51 225

原创 @ 代码随想录算法训练营第6周(C语言)|Day39(动态规划)

五部曲解决。注意初始化。

2024-02-06 21:49:04 859

原创 @ 代码随想录算法训练营第6周(C语言)|Day38(动态规划)

五部曲解决。简单。注意dp[0]=0;dp[1]=0。

2024-02-05 23:52:18 320

原创 @ 代码随想录算法训练营第6周(C语言)|Day37(贪心)

l先遍历数字将数字变成数组。贪心加递归。

2024-02-01 22:20:36 325

原创 @ 代码随想录算法训练营第6周(C语言)|Day36(贪心)

排序、重叠就加一并更新区间。用哈希表来记录字母最后出现位置,然后一旦遍历过的字母最大值与坐标值相同就是边界。根扎气球相同,更新已经记录的数组区间。

2024-01-31 23:34:42 245

原创 @ 代码随想录算法训练营第6周(C语言)|Day35(贪心)

字典计数,分别处理不同情况优先用10元。先按身高降序排序,然后按位置插入,并将后推。也是先排序,后看二维图,合并边界。

2024-01-30 22:42:57 460

原创 @ 代码随想录算法训练营第6周(C语言)|Day34(贪心)

负值变正值,只维护最小值。讲究技巧的,这题看cursum:每次加完油跑完还剩下多少油,为负数就重新开始,最后计总若是大于说明可以跑完。简单化,先判断一边,在判断另一边。

2024-01-29 22:55:42 403

原创 @ 代码随想录算法训练营第5周(C语言)|Day27(回溯)

组合。这是树的宽度去重+快排。回文子串。

2024-01-29 00:03:38 259

原创 @ 代码随想录算法训练营第5周(C语言)|Day28(回溯)

搞一个记录.位置的数组。不用写终止条件。宽度去重。

2024-01-28 23:54:06 232

原创 @ 代码随想录算法训练营第5周(C语言)|Day29(回溯)

要注意 intuset=(int//这是再每一层设立的测重器//这个数的作用在于你得知道她的结尾在哪里,不然指针会指到空。used数组为1 continue 这是树的深度去重。先快排,深度和宽度都得去重。

2024-01-28 23:27:28 116

原创 @ 代码随想录算法训练营第5周(C语言)|Day30(回溯)

pathlen为使用皇后的个数。c语言的话 注意这样对字符串进行创建使用int j;for(j=0;j<n;j++){

2024-01-28 23:08:40 246

原创 @ 代码随想录算法训练营第5周(C语言)|Day31(贪心算法)

利用摆动序列的性质一高一低就计数加一,从零开始,终点不算。用动态规划,dp数组为前i项(包含nums[i]的)最大的连续子序列之和。

2024-01-28 22:55:20 905

原创 @ 代码随想录算法训练营第5周(C语言)|Day32(贪心算法)

手搓了一个版本(没用贪心)。每次走最大的cover,就能走最短的步数。

2024-01-28 22:34:58 319

原创 @ 代码随想录算法训练营第四周(C语言)|Day20(二叉树)

创造数组更简单一点的。两个树的合并。简单。不能单纯的比较左节点小于中间节点。

2024-01-15 22:57:32 383 1

原创 @ 代码随想录算法训练营第一周(C语言)|Day3(链表)

无。还是有很多要注意的地方。虚拟头节点pre。

2024-01-14 23:54:19 374 1

原创 @ 代码随想录算法训练营第一周(C语言)|Day2(链表)

简单。暴力解法。区间开闭的考虑。

2024-01-14 23:47:47 392 1

原创 @ 代码随想录算法训练营第三周(C语言)|Day15(二叉树)

数组构造队列。给定一个二叉树,检查它是否是镜像对称的。同时对两棵树处理。

2024-01-14 23:40:03 364 1

空空如也

空空如也

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

TA关注的人

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