自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式&C++转java 刷题day2

设计链表 用C++写非常困难 但是用java的话就简单太多了 很多细节都不用处理 就是注意下面几个点:1 this.val=val 这是java中的叫隐藏的this调用吧 2 你这个prehead也就是函数中的局部变量 你要是说想全局去显示的话,你需要把它写到属性的位置。这个还是说要想到 不是说一下子操作两个结点 而是一个结点一个结点的操作 且最后是Null 所以不需要新加一个头结点。还是转java了 用java刷题的感觉就是非常的轻松愉快 只能说java火不是没有道理的。

2023-10-26 17:28:44 145

原创 算法DAY66

今天是去实现了一下排序算法。

2023-10-10 19:31:24 148

原创 代码随想录acm 模式+复习 day65

还是很不错的 主要是熟悉了一下cin 和cout 的使用!今天到卡哥的卡码网上去练习了一下acm模式。

2023-08-27 17:34:56 127

原创 代码随想录DAY64

因为找不到的话 left和right永远会相差一 也就是把元素刚好夹住 nums[right]在左边 小于元素 nums[left]在右边大于元素 找到的话 像之前那个边界题 肯定就相差大于1了。其实完全不用写 直接return right+1就好了。做过的题 就是要注意下边界条件 其他的还是一遍过的 简单。这个题还是很简单的 几乎是一遍过 但是要注意几个点。还是练习的不够啊 还是得多练啊。

2023-08-19 16:24:13 149

原创 代码随想录DAY63

这题对二分法还是很有很有难度的 主要就是Mid会找到每一个值(即使重复) 然后就是确定边界。还可以用这种高端的代码 思想就是只遍历一遍奇和偶 但是比较难想。

2023-08-19 00:17:13 173

原创 代码随想录DAY62

注意注意注意 不排序不能比较数值!第二题 主要是左旋和右旋的问题 还是要搞清楚!右旋是先反转整个字符串。这个移动0的问题还是比较重要的 因为涉及到一种思想:快慢指针!

2023-08-18 21:03:49 97

原创 嵌入式八股文之旅 DAY4

也就是说,一个联合体的大小等于其最大的成员的大小。在同一时间,只有一个成员可以保存有效的值,如果你对新的成员赋值,之前的值就会被覆盖。Const就是常量修饰符,const变量应该在声明的时候就进行初始化,如果在声明常量的适合没有提供值,则该常量的值是不确定的,且无法修改。成员变量通常用在你希望某个成员变量的值在对象创建后就不再改变,或者你希望确保某个成员函数不会改变这个成员变量的值的情况下。3)const修饰类成员函数:该函数对成员变量只能进行只读操作,就是const类成员函数是不能修改成员变量的数值的。

2023-08-18 11:22:51 86

原创 嵌入式八股文之旅 DAY3 static

全局变量这样 其实就是把动态分配的内存(运行时分配)改为静态了 (编译时分配) 你只能通过这个函数去调用这个变量 但是每调用一次 它的值会+1 你退出了 这个变量还是+1的状态不会被初始化。用于函数内的局部变量时,它会改变这个变量的存储类型,使其从自动存储(函数调用时分配,函数返回时释放)变为静态存储(程序启动时分配,程序结束时释放)。类成员变量是类的所有实例共享的。全局变量只在定义它的文件中可见,这使你可以在不同的文件中定义同名的。函数只在定义它的文件中可见。类成员函数可以在没有类的实例的情况下被调用。

2023-08-16 22:53:35 106

原创 DAY61 代码随想录 额外题目

操作符从左到右求值,如果左边的条件失败,那么就不会继续求值右边的条件 另外说是双指针 但是其实是用数组下标来代替的双指针 这道虽然是简单题但是还是很不好想的 另外题目也有很多坑 比如说这两个元素不能是头尾。这个题还是很有意思的 你一要知道可以先弄一个数组 然后再排序 二要知道直接用一个temp就行 这样能节省空间。注意啊注意 防止越界问题 主要是&&是左操作符。还是不行 还是练得太少 多练 苦练!

2023-08-16 20:50:06 62

原创 终极代码随想录 DAY60 最后一天

说是最后一天 其实后面还有图论和等等什么的 不过算是代码训练营的最后一天吧 还是历经整整3个月终于刷完了 主要因为是转行 其中很多算法根本没接触过 耗费了比较多的时间 不过嵌入式对算法的话要求也没那么高 后面就是hot100 和剑指offer之类的 就差不多了。双指针 还是有些难度的。

2023-08-15 00:14:26 111

原创 嵌入式八股文之旅DAY2

3为什么建立连接是三次握手,关闭连接确是四次挥手呢?2为什么客户端最后还要等待2MSL?1 什么是四次挥手?

2023-08-13 21:20:17 45

原创 代码随想录DAY59

这个题还是比较坑的 主要是你得能想到循环就是两次遍历就可以了 然后就是用%的操作 来保证两次都是一样的 类比54321 54321 这样第二个5就能把4321都涵盖了。双指针法 完全没问题 还是说:练的不够啊 力量不够啊。一定要用空间换时间的思想!

2023-08-13 16:33:03 220

原创 嵌入式linux的八股文之旅 DAY1

服务器收到客户端的SYN报文后,把自己的序号server_isn放进tcp首部序列号段,确认应答号填client_isn+1 把SYN和ACK置1(标志位) 然后发给客户端 自己进入SYN-RCVD状态。客户端收到服务器报文后,还要再回一个应答报文。3 避免资源浪费: 如果只有两次的话 那么服务器每收到一个SYN都要分配资源 如果说网络阻塞 客户端没收到服务器端的ACK报文的话 那只能重复发送SYN 服务器就会重复分配资源、、服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的。

2023-08-12 22:07:24 806

原创 DAY58 单调栈

注意啊注意 首先map 你应该去用unordered_map 不是unorder_map 要注意ed。另外map和数组的区别就是 数组是连续的 然后map它的键值是不固定的 可以随机选定。另外map找的话 可以使用map1(key) 去找value。另外是返回下一个元素的下标 还是本身 还是要去考虑清楚的。还是要注意 你在栈里存储的是下标 而不是数值。

2023-08-12 17:08:49 173

原创 DAY57动态规划完成

那么其实你还是要注意==和=的区别 一个是等 一个是赋值。这个动态规划确实绷不住了 确实难 唉 只能说很不容易。

2023-08-11 20:45:50 173

原创 编辑距离总结篇

首先说一下 还是说这个max({,,,}) 和min都可以这么用。还是收获挺大的 主要还是说要去坚持。

2023-08-10 19:52:35 33

原创 代码随想录 DAY56

另外就是这个你不用去考虑如果是相同的话怎么样 因为如果是相同的话 就跟之前的是一样的就算你是eeeee 和e 那其实也是可以的 因为初始化的时候已经考虑到这种情况了 后面都是递推的 因此也是一样的 其实就像这个表格一样 你只不过是走斜的行 因此最后还是会回到初始化的情况 而初始化的时候已经考虑了 如果说重复的情况 因此无需担心。首先你就是得知道 就算是这两个元素相等 你还是要把dp[i][j]设为dp[i-1][j-1] 你不能什么都不做。编辑距离: 一定一定注意!动态规划dp数组一定是你最后要求的!

2023-08-10 19:48:08 94

原创 代码随想录 DAY55

还是一样的套路 首先你还是要知道 有两个数组或者是字符串还是容器什么的 就必定还是要用二维dp数组的 然后就是如果它们相同的话 就是过去的+1 然后不同的话就是[j-1]这个点还是很难想的 就是相当于t减了一格 就是删除了一个元素 这样就行了 因为s是小的不能动。首先这个题呢 你要读懂题意 题意是判断s是否为t的子序列 因此t是长的。另外浮点数不能用Unsigned 修饰。

2023-08-09 16:19:53 80

原创 代码随想录 DAY53

这个第二题几乎一模一样 但是你还是要注意 比较的时候是比较nums1[i-1]和nums2[j-1] 因为不这样的话会越界!2 dp[0]要初始化为nums[0] 因为你的dp是依赖于dp[i-1]的 其实你犯的是同样的错误 也就是你不知道这个循环其实是跳过第一轮的 因此有错误。还有就是你在遍历的时候也是要遍历到tex1.size()+1 而不是到结尾就完了 你还要再去多遍历一位!这个题首先初始化的时候一定是 .size()+1 因为到了.size()的时候 还要再加一位 这样才对。

2023-08-08 17:10:48 111

原创 代码随想录 DAY52

这个题其实就是几个点 一个是初始化为1 一个是要时刻牢记dp数组的定义 就是以nums【i】结尾的最大递增子数组 注意是结尾 其实最长子序列有可能以哪个nums[i]结尾都可以 因此 你需要遍历每一个i 然后对于每一个i 都要再去遍历每一个j 也就是每一个nums[i] 你都要去检查能不能加到nums[j]后面 也就是每一个子序列的长度都是分散的 且不连续 你每一个Nums[i]结尾的子序列 都必须检查每一个元素 看看能不能加到后面。一定要注意 是初始化为1 而不是0。这道题还是不太好想 我只能说。

2023-08-07 20:43:06 103

原创 【无标题】

比较简单 几乎是一次过 主要就是理解手续交易费只收一次就行 然后最后一天一定是卖出去了。

2023-08-02 16:16:32 178

原创 DAY50 代码随想录

只能说究极恶心 也不知道谁想出来的 人生苦短吧。人生苦短 发明题来难为我 我太难了。

2023-08-01 23:25:30 123

原创 代码随想录 DAY10

直接一遍过了 非常神奇 简单题。

2023-08-01 15:34:46 71

原创 DAY47 打家劫舍

这题还是很有难度的 主要就是最后一步的return {val2,val1};val2是不偷 val1是偷 然后返回一个二维数组。你注意学习的时候不要玩手机 一定不能 你又不是非得这会玩 这就是个坏习惯 习惯成自然。这道题就是不用背包 直接递推就可以 也没必要用背包。

2023-07-31 12:47:26 258

原创 DAY46 动态规划

这个题就比较恶心了 首先就是你得把要找的目标字符串分割 然后跟数组一个一个的比对。

2023-07-28 16:42:05 133

原创 代码随想录 DAY45

这个第二题主要就是那个if判断 之前为什么不用加呢 因为之前都是初始化为0 因此加不加没影响 但是你现在设置为这个最大值 一是会导致溢出 二是你会改变dp[j]的值 主要是你会改变dp[j]初始化的值 后面就会造成一系列的错误。这个题还是说想清楚 这个因为有1和2 阶的情况 所以i就是从1开始遍历 然后小于等于2 就是1和2这两种情况。

2023-07-27 18:11:03 464

原创 代码随想录 day44 完全背包

另外你这个是不能从大到小遍历的 因为这样的话 你就落下了重复选取的情况。第二题还是要小心啊 虽然看起来是排列 实际上是组合!

2023-07-27 14:11:36 359 1

原创 day43 代码随想录

这个题主要思想就是分成两堆 然后对撞 而不是你一开始想的一个一个对撞 然后就是背包容量的问题 背包容量应该是它们的和 而不是stones.size() 然后既然你是把sum/2 那么就是sum-dp[i]是一堆 然后dp[i]是一堆 然后sum-dp[i]一定大于等于dp[i] 因此问题就迎刃而解了。

2023-07-26 13:02:34 313

原创 动态规划 DAY42 0/1背包

今天就是这个0/1背包问题 还是被虐了 还有一个就是 dp[j]=max(dp[j],dp[j-nums[i]]+nums[i]);这个是一定要比较的 你如果直接用 dp[j-nums[i]]+nums[i] 虽然说j比nums[i]大 但是你之前的dp[j]就丢失了 比如说dp[j]原本是10 j也比nums[i]大 但是你放入了这个就不一定会有原来的dp[j]大。

2023-07-25 16:29:09 364

原创 动态规划 part3

首先就是你完全可以生成一个vector <int> dp(n+1) 这种 多一个元素的 这样你就能和下标对应了 即使浪费了一点点的空间。另外就是这个j要小于等于n/2 因为如果是偶数的话 要拆分成一半。你做树的题 还是要左子树和右子树分开来看!

2023-07-24 22:36:22 265

原创 DAY39 动态规划2

那么就是vector<vector<int>> dp (m,vector<int>(n,0) ) 这样子 主要就是括号里的不用加名称也不能加名称 因为这属于是初始化,创建的临时对象 因此不能加名称。还有这个第一题临时路径 其实就是你要懂不是四个维度 而是两个维度推出来的 就是[i-1][j]和[i][j-1] 然后还有一个初始化的问题 动态规划就是 1 确定dp数组和下标含义 2确定递推公式 3dp初始化。注意啊注意 还有一个就是你在初始化的时候一但遇到了障碍物的话 后面就都应该是0!

2023-07-24 12:17:02 306

原创 DAY38 代码随想录 动态规划

public:int dp[2];dp[0]=0;dp[1]=1;i<n;i++){dp[1]=sum;public:int dp[3];dp[1]=1;dp[2]=2;i<=n;i++){dp[2]=sum;public:int dp0=0;int dp1=0;i++){dp0=dp1;dp1=dpi;return dp1;

2023-07-24 11:16:00 137

原创 代码随想录 DAY37

还有就是这个把高位减1 然后替换成9的这个东西 还是要占在计算机的角度去考虑问题!不要 去暴力破解 没有意义 要多看多练多总结!然后就是关键的 从后向前还是从前向后 这一点你还是出问题了 其实你从前向后想不通 你就还是应该从后向前去想!第一题 首先在C++中你应该用to_string() 函数来把整数转化为字符串。另外你不能操作一位 就设置一位为9 你要去操作一位后 把后面的值都设置为9!要完全完全周全的考虑好了题意 再去做答。第二题很难 就跳过了。

2023-07-19 23:58:21 339

原创 代码随想录 DAY36

首先这个第一题 你一定要注意更新最小的区间边界 假设有重叠的话 不重叠的话就无所谓了 为什么是最小呢 因为这个时候你已经是移除一个区间了 而题目又让你去返回需要移除区间的最小数量 所以你要尽可能的不重叠 因此你要去移除最小的。intervals[i][0]<intervals[i-1][1] 另外这里一定要是小于 你可以画个数轴去看一下 你得要比相对来讲小的小才能算是重叠。注意这个题你得首先假设不重叠的区域 你也得加啊 因此你不能说只是重叠的时候在result里面加数组。注意啊注意此时,当你使用。

2023-07-19 00:07:32 419

原创 DAY35 代码随想录

静态成员函数与类的对象无关,它无法访问类的非静态成员变量,也无法调用类的非静态成员函数。2 假设你这个people是一个vector 那么这个cmp函数应该是vector中的元素里面的值去比 因此这个函数要的参数应该是int类型的!另外你要注意这个insert函数的用法 它第一个参数是迭代器(要插入的位置) 第二个参数是要插入的数据。函数需要一个可以在没有对象的情况下调用的函数,也就是静态成员函数或者全局函数。这个第三题 其实是很简单的 关键是要有自信 坚定的写下去!还是说要多看多写多总结!

2023-07-18 21:45:37 428

原创 DAY 34 代码随想录

C++你定义变量一定一定要初始化 但是容器是不用初始化的 因为容器已经被编译器初始化完了 另外数组也要初始化!你应该把i初始化为ratings.size()-1而不是ratings.size() 因为这样就越过内存了。

2023-07-13 23:52:10 589

原创 DAY32 代码随想录

第二题思路不容易想到 主要就是你的这个cover 和i+nums[i]去比较 这么个问题 就好了。第一题很简单 一遍过。

2023-07-12 21:46:59 404

原创 代码随想录day31 贪心算法

1 你在C++的for循环中是不能直接定义两个不同类型的变量的,即使是相同类型的你也只能使用一遍int 比如说:for(int a,b;也就是这个逗号虽然计算了左侧的表达式的值但是并不参与结果 它其实上是返回的是右边表达式的值 也就是你的for(;j>=0,i>=0;)只是返回了i>=0 因此你应该写成&&运算 也就是for(;i>=0&&j>=0;2 你在for中写逻辑的时候 for(int a,b;i>=0,j>=0;) 你是不能写成这样子的 因为这样子这两个条件是没有被同时使用的 只是。

2023-07-10 12:33:34 35

原创 DAY30 代码随想录

这是C++中一个很方便的语法,通过一维数组模拟二维数组的访问。所以,chessboard[i][j]这样的访问方式是合法的,只是我们在理解上可以将其视作二维数组来思考。这个题目只需要检查左上和右上对角线上是否有皇后,因为在回溯算法的执行过程中,我们是从棋盘的第一行开始,逐行放置皇后的。是因为每一行每一列只放一个皇后,只需要一层for循环遍历一行,递归来遍历列,然后一行一列确定皇后的唯一位置。所以,通过vector[i][j]这样的语法,我们就可以方便地将其视作二维数组来访问。以下的行还没有放置任何皇后。

2023-07-08 23:06:30 46

原创 DAY29 代码随想录

这个排列是每个元素都要用 因此不用startindex了 因为元素不是重复的 因此它其实是树枝去重 那这样就是递归去重 所以肯定要传参 也就是传used数组 而且你回溯的时候你还要去回溯used数组 这样的话 你这个树层就没有去重而是树枝去重。这个组合的去重是树层去重 也就是你这个递归中会清零 然后在for循环中int改变时会去去重。首先啊首先 这个第一题有个什么问题呢 就是它不能排序 只能说是从左到右遍历。不要把赋值号= 错写成等号 ==!

2023-07-07 13:38:32 108

空空如也

空空如也

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

TA关注的人

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