- 博客(73)
- 问答 (1)
- 收藏
- 关注
原创 【Day7】代码随想录二刷之Chapter4——字符串
唉,好久不见,因为一些事情,刷题又给耽搁了,那之后还是要养成刷题的习惯的,真的只要有一天不刷后面就会偷懒,今天是字符串章节,开冲!!!
2024-03-16 11:47:59
1006
原创 【Day4】代码随想录二刷Chapter3——哈希表part1
总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!
2024-03-06 22:08:08
1133
原创 【Day2】代码随想录二刷之Chapter2——链表part1
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,即数据域和指针域(存放指向一个节点的指针),最后一个节点的指针域指向null(空指针)。链表的入口节点称为链表的头节点也就是head。int val;// 节点上存储的元素// 指向下一个函数的指针ListNode(int x): val(x), next(NULL){} // 节点的构造函数。
2024-03-04 21:03:28
916
原创 【Day1】代码随想录二刷Chapter1——数组
因为时间进度的安排,我想去的公司的实习的招聘开始时间还不是太紧,因此还是从代码随想录二刷开始,重点要做到以下方面:1、每一章的套路总结,以及常遇到的问题(以思维导图的方式记录下来),如果有模板把模板记住;2、分析代码的时间复杂度和空间复杂度(不要写完了就写完了,这个是在一刷中没有注意的);3、C++在刷算法题中的常见语法(简单的排序等、迭代器这种的);4、熟悉刷题中ACM模式(后面机试和笔试都是相关的);5、排序的十种算法(冒泡、插入排序、归并排序、快排等)1、数组的特点:时间复杂度:o(n);
2024-03-03 11:40:33
782
原创 【Day63】代码随想录之单调栈part2——下一个更大元素、接雨水
今天晚上是刷题的第二弹,继续单调栈,而且有最经典的接雨水的问题,开冲,马上既可以结束了。
2024-02-29 22:09:48
728
原创 【Day62】代码随想录值单调栈part1——每日温度、下一个更大元素I
单调栈本质就是一个栈,但是需要保证栈中的元素是递增或者递减;单调栈中放下标,通过下标做差值来计算距离;递增:当前左边或者右边第一个比他大的元素;递减:当前左右或右边第一个比他小的元素。单调栈的作用:是为了存放遍历过的元素,然后和当前遍历的元素做对比。
2024-02-29 20:30:01
721
原创 【Day60】代码随想录之动态规划part17——回文子串、最长回文子串、动态规划篇总结
今天下午的第一弹也就是动态规划章节的最后一弹,动态规划终于快要结束了,真的很难,但也是笔试和面试中最常考察的,继续刷题,开冲!!!如何使用动态规划的方法解决回文子串,按照动规五部曲:(1)定义dp数组:dp[i][j]:定义i到j的子串是否是回文子串,如果是回文的就是true,反之为false;(2)确定递推公式:(相同的话是有三种情况的)(3)初始化:dp[i][j] = false;(4)遍历顺序:因为dp[i][j]依赖的是左下角的值,所以遍历顺序应该是从下往上,从左到右来遍历的(5)打
2024-02-29 14:38:07
800
原创 【Day59】代码随想录之动态规划part16——两个字符串的删除操作、编辑距离、编辑距离总结
编辑距离系列问题,我们大致做了四类题目。解决此类问题的动规五部曲为:以i-1为结尾的word1子序列和以j-1为结尾的word2子序列,最少的操作数使两者相同;两个元素相等:******两元素不相等:***********根据递推公式,需要把第一行和第一列全部初始化掉;从左到右,从上到下;5、打印dp数组。
2024-02-29 10:48:01
813
原创 【Day58】代码随想录之动态规划part15(编辑距离系列问题)——判断子序列、不同的子序列
dp[i][j]:表示以i-1为结尾的s中以j-1为结尾的t的个数。
2024-02-29 09:29:43
1037
原创 【Day56】代码随想录之动态规划part13——最长递增子序列、最长连续递增序列、最长重复子数组
今天晚上继续补代码随想录的题目,今天下午结束了所有的股票问题,下面开始序列的问题,开冲!!!
2024-02-28 20:37:02
900
原创 【Day55】代码随想录之动态规划part12——最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费
今天下午继续补动态规划的题目,股票问题马上就要搞完了,开冲!!!这道题目相当于对买卖股票II多了一个冷冻期。卖出股票之后需要一天冷冻期,才能买入股票。按照动规五部曲开始:1、确定dp数组的含义(只需要4个状态就可以把时间描述清楚了):dp[i][0]:持股;dp[i][1]:保持卖出股票的状态;dp[i][2]:具体卖出股票的状态(具体在那一天中卖出股票,因为有冷冻期的存在,所以要将不持股的状态拆分开);dp[i][3]:冷冻期的状态。2、确定递推公式:(1)dp[i][0] 包括三种:之前
2024-02-28 15:39:21
582
原创 【Day54】代码随想录之动态规划part11——买卖股票的最佳时机III、买卖股票的最佳时机IV
dp[i][0]表示不操作;dp[i][1]:第一次持有;dp[i][2]:第一次不持有;dp[i][3]:第二次持有;dp[i][4]:第二次不持有;
2024-02-28 14:36:28
963
原创 【Day53】代码随想录之动态规划part10——买卖股票的最佳时机、买卖股票的最佳时机II
i仅仅表示卖出的这种状态,不一定是当天去买或者卖股票dp[i][0]表示持有这支股票,所得到的最大现金;dp[i][1]表示不持有这支股票,所得到的最大现金。注意:dp[i][0]不一定是当天有这支股票,有可能是0 ~ i-1天之间买入的;dp[i][1]也是同理。最终要求的结果 max(dp[price.size()-1][0] , dp[price.size()-1][1])
2024-02-28 10:52:23
921
原创 【Day47】代码随想录之动态规划part9——打家劫舍、打家劫舍II、打家劫舍III
今天晚上补动态规划中的打家劫舍的系列的问题,不算难,一口气拿下。
2024-02-27 20:33:44
990
原创 【Day46】代码随想录值动态规划part8—单词拆分、多重背包理论、背包问题总结
【代码随想录之多重背包问题】多种背包跟01背包其实就是物品是否可以重复用的区别,然后多重背包还要组合与排列的问题,对应的就是遍历顺序的问题。多重背包在面试中基本不会出现,力扣上也没有对应的题目,大家对多重背包的掌握程度知道它是一种01背包,并能在01背包的基础上写出对应代码就可以了。背包问题是动态规划里面非常重要的一部分。常见的背包如下所示,主要以01背包和完全背包为主。其次记住动规五部曲:1、确定dp数组以及下标的含义;2、确定递推公式;3、dp数组如何初始化;4、确定遍历顺序;
2024-02-27 15:26:01
827
原创 【Day44】代码随想录之动态规划part06——完全背包、零钱兑换II、组合总和IV
今天是补代码随想录刷题的第一天,现在是晚上,开始补刷题目。
2024-02-23 19:14:27
354
原创 【Day43】代码随想录之动态规划part5——最后一块石头的重量、目标和、一和零
【1049.最后一块石头的重量II】这个题目的整体思路比较难想,就是要从宏观的角度,看看能否分成两组石头,看两组石头的差值就可,因此这个题又可以转化为0-1背包问题。问:怎么想到01背包?答:做多了类似题目就想到了。这是「从序列中选择子序列使得和接近target」系列的题目,一般都是双向dfs或者01背包问题来完成。重量和价值相等的一个数组,背包重量为sum/2,尽最大能力去装满,看看最终是否能装满?(1)定义dp数组,dp[j]表示装满重量为j的背包,所能产生的最大价值也就是最大重量;
2024-02-23 15:11:34
708
原创 【求职实习网站篇】嵌入式软件工程师每天早上都可以关注一些求职网站的招聘信息
相信我们在求职过程中遇到了有很多信息差,这样会使我们可能错过很多机会,因此我这边整理下找可以浏览的岗位,在开启每天早上的学习之前看看有没有什么合适的岗位,投递完简历后然后开启一天的学习。
2024-02-19 10:45:25
376
原创 【Day42】代码随想录之动态规划part4——01背包问题、滚动数组、分割等和子集
昨天的两道题目还是有点难的,思路真的很难想到,后面多复习吧,今天开始动态规划中的背包问题。(今天状态不好,最后一题直接看的答案,先玩几天吧,等过年之后继续刷题)
2024-02-06 16:09:30
309
原创 【Day39】代码随想录之动态规划part2——不同路径、不同路径II
今天是动态规划的第2部分,开冲!!!今天开始逐渐有 dp的感觉了,题目不多,就两个 不同路径,可以好好研究一下。
2024-02-03 09:36:42
584
原创 【Day37】代码随想录之贪心算法part6——单调递增的数字、监控二叉树、贪心算法总结
昨天大家了,因为路上很困,所以昨天就没有刷题,今天把昨天的题目补上,贪心算法最后一章,开冲!!!错误代码(这种条件下,如果原始数据是100,则不正确):需要注意下面的几个点:(1)对于数字的遍历,可以采用先将其转为字符串,处理结束之后在转换为数字的方式;(2)如何实现单调递增序列?如果数字的前一位的值大于后一位的值,则前一位的数值-1,后一位变为9。(3)对于100,1000这种,后面没有变化的,需要标记一个flag,从flag后面开始都要变为9;(4)遍历的数组是从后往前遍历,因为如果从前往后
2024-02-02 09:42:21
437
原创 【Day36】代码随想录之贪心算法part5——无重叠区间、划分字母区间、合并区间
今天下午要回家了(河南要下暴雪了,怕再晚了就回不去了,今年春运压力应该会比较大),上午的话先把今天的题目刷完,开冲!!!【提示】今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后, 重叠区间基本上差不多了。
2024-01-31 10:32:41
523
原创 【Day34】代码随想录之贪心算法part03——K次取反后最大化的数组和、加油站、分发糖果
昨天周日休息,今天又开始刷贪心算法的题目了,开冲!!!
2024-01-29 11:53:06
421
原创 【STM32协议讲解】STM32CubeMX + STM32F103 + 逻辑分析仪分析IIC、SPI和串口协议
【SPI与IIC通信协议对比篇】
2024-01-28 20:01:13
2221
1
原创 【Day31】代码随想录之贪心算法part1——理论基础、分发饼干、摆动序列、最大子序和
贪心的本质就是选择每一阶层的局部最优,从而达到全局最优。贪心的例子:有一堆钞票,若可以拿走十张,如何达到最大金额?可以每次都拿最大的,最终结果就是拿走最大数额的钱。动规的例子:如果有一堆盒子,如果有个背包体积为n,尽可能地把背包装满,此时贪心就不行了,需要动态规划。
2024-01-26 11:21:45
881
原创 【Day30】代码随想录之回溯算法part6——回溯算法总结、重新安排行程、N皇后、解数独
一、回溯算法总结1.1 回溯算法理论篇1.2.1 普通的n个数中选k个数1.2.2 组合总和(一)1.2.3 组合总和(二)1.2.4 组合总和(三)1.2.5 多个集合求组合(电话号码)1.3 切割问题1.3.1 分割回文串1.3.2 复原IP地址1.4 子集问题1.4.1 子集1.4.2 子集(二)1.4.3 递增子序列1.5 排列问题1.5.1 排列1.5.2 排列(二)二、N皇后问题三、解数独【代码随想录之回溯总结篇】
2024-01-25 10:42:52
928
原创 【Day29】代码随想录回溯算法part5——递增子序列、全排列、全排列II
今天继续回溯算法,开冲,回溯部分马上就要结束了。所有的回溯都是深度搜索算法,去重的方式也包括很多,比如used数组(必须是有序的),哈希表set去重(更通用一点)
2024-01-24 10:13:14
454
原创 【Day28】代码随想录回溯算法章节——复原IP地址、子集、子集II
public:// 判断切割后的单个字符是否合法// 1. 首字符不为0;2. 数字大小是位于0-255之间;3.不能有特殊字符;i<s.size();i++){// 终止条件// 分成4段,需要检查最后一段是否合法i++){}else{temp = "";// 清空 tempreturn;// 单层逻辑i++){}else{break;// 算是剪枝了。
2024-01-23 11:20:10
460
原创 【Day27】代码随想录回溯算法——组合总和、组合总和II、分割回文串
昨天是周末正好学习,因为我的方向是嵌入式(单片机这种的),昨天就看了些八股,因为自己的技能树有限,Linux相关的那些东西也都没有学,开始有点压力了,暂定的是先把单片机学好,找到实习之后再学习Linux应用相关。但是算法部分也不能落下,开冲!!!
2024-01-22 11:48:28
903
空空如也
关于BME680的问题,就是我按您的步骤做了一遍
2021-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人