- 博客(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语言)|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语言)|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
原创 # 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语言)|Day41(动态规划)
递推公式很难想到,n平方的时间复杂度,与下面的题目相似。从以一为根节点到一i为根节点,左右两边不同布局相乘,再依次相加。
2024-02-06 23:26:51 225
原创 @ 代码随想录算法训练营第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语言)|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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人