
C/C++学习
Frank---7
从JAVA转C++失败,现在继续卷JAVA的小菜鸡一枚,希望和大家共同进步!
展开
-
MFC---把指定图片导出到pdf中
【代码】MFC---把指定图片导出到pdf中。原创 2025-03-11 21:42:49 · 358 阅读 · 0 评论 -
LeetCode---84. 柱状图中最大的矩形(双指针or单调栈)(求左右两边第一个小于该高度的下标)(栈内元素从低到顶依次减小)(数组最前最后加0,防止有些情况涉及不到)
本题要记录记录每个柱子 左边第一个小于该柱子的下标,而不是左边第一个小于该柱子的高度。所以需要循环查找,也就是下面在寻找的过程中使用了while。原创 2024-08-23 16:23:12 · 436 阅读 · 0 评论 -
LeetCode---42. 接雨水(动态规划or单调栈or双指针三种写法)(求左右两边最大值中的最小值)(栈内元素从低到顶依次减小)
对于下标 i,下雨后水能到达的最大高度等于下标 i 两边的最大高度的最小值,下标 i 处能接的雨水量等于下标 i 处的水能到达的最大高度减去 height[i]。原创 2024-08-23 11:39:20 · 509 阅读 · 0 评论 -
LeetCode---503. 下一个更大元素 II(单调栈,循环数组的处理方法:for(int i=0;i<len*2;i++),temperatures[i%len])
【代码】LeetCode---503. 下一个更大元素 II(单调栈,循环数组的处理方法:for(int i=0;i<len*2;原创 2024-08-22 09:30:46 · 223 阅读 · 0 评论 -
LeetCode---516. 最长回文子序列(动态规划)
int。原创 2024-08-21 16:49:18 · 405 阅读 · 0 评论 -
一文教你精通C++中单个字符与字符串之间的相互转换(to_string函数并不能直接用于单个字符,因为 to_string是用于将数值类型转换为字符串的)
/ 获取最后一个字符这几种方法可以灵活应用于不同的场景中,例如处理输入输出、字符串操作等。原创 2024-08-21 11:56:49 · 1376 阅读 · 0 评论 -
LeetCode---647. 回文子串(双指针/动态规划)+5. 最长回文子串(动态规划)
【代码】LeetCode---647. 回文子串(双指针/动态规划)原创 2024-08-21 10:13:22 · 990 阅读 · 0 评论 -
LeetCode---115. 不同的子序列(动态规划)
int。原创 2024-08-19 19:10:57 · 279 阅读 · 0 评论 -
LeetCode---392. 判断子序列(判断子序列不等于判断公共子序列(eg:相等时候的处理逻辑不一样))
【代码】LeetCode---392. 判断子序列(判断子序列不等于判断公共子序列(eg:相等时候的处理逻辑不一样))原创 2024-08-19 11:04:53 · 448 阅读 · 0 评论 -
LeetCode---123. 买卖股票的最佳时机 III
//注意:其实相当于第0天第一次买入了,第一次卖出了,然后再买入一次(第二次买入),那么现在手头上没有现金,只要买入,现金就做相应的减少。 dp[0][3]=-prices[0];原创 2024-08-17 12:14:40 · 240 阅读 · 0 评论 -
LeetCode---337. 打家劫舍 III(树状DP)
【代码】LeetCode---337. 打家劫舍 III(树状DP)原创 2024-08-17 11:09:54 · 223 阅读 · 0 评论 -
LeetCode---968. 监控二叉树(贪心算法,从叶节点回溯到根节点)
【代码】LeetCode---968. 监控二叉树(贪心算法,从叶节点回溯到根节点)原创 2024-08-17 10:19:11 · 301 阅读 · 0 评论 -
完全背包---求组合数VS求排列数
求组合数时,使用外层遍历物品、内层遍历背包容量的方式。这是因为组合数不关心物品的顺序,只关心组合的内容。求排列数时,使用外层遍历背包容量、内层遍历物品的方式。这是因为排列数关心物品的顺序,不同的顺序会生成不同的排列。这种区分在动态规划的求解中非常重要,确保选择的方式能够符合问题的要求。原创 2024-08-15 09:58:43 · 244 阅读 · 0 评论 -
一问教你熟练掌握大根堆和从小到大的排序VS小根堆和从大到小的排序
大根堆(Max-Heap):堆顶是最大元素。用于频繁取最大值的场景,如优先队列。从小到大的排序(Ascending Order):将元素按从小到大的顺序排列,常见排序算法默认都是这个顺序。小根堆(Min-Heap):堆顶是最小元素。用于频繁取最小值的场景,如优先队列。从大到小的排序(Descending Order):将元素按从大到小的顺序排列,可以通过改变排序算法的比较器来实现。原创 2024-08-14 13:32:52 · 632 阅读 · 0 评论 -
一文教你精通背包问题从二维变为一维(一维dp数组(滚动数组))
在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。原创 2024-08-13 19:45:54 · 645 阅读 · 0 评论 -
LeetCode---96. 不同的二叉搜索树(动态规划)
【代码】LeetCode---96. 不同的二叉搜索树(动态规划)原创 2024-08-13 15:57:20 · 396 阅读 · 0 评论 -
LeetCode---63. 不同路径 II(动态规划,深搜会超时)
int。原创 2024-08-13 14:52:20 · 191 阅读 · 0 评论 -
LeetCode/卡码网---57. 爬楼梯(动态规划,类似与分割类型/背包类型)
【代码】LeetCode/卡码网---57. 爬楼梯(动态规划,类似与分割类型/背包类型)原创 2024-08-13 11:50:40 · 262 阅读 · 0 评论 -
C++/LeetCode---判断链表是否有环AND使用快慢指针求链表中点
使用快慢指针遍历链表,慢指针每次走一步,快指针每次走两步。如果链表中存在环,快指针最终会追上慢指针(两者相遇),此时我们就可以确定链表中存在环。如果快指针走到了链表末尾(同样使用快慢指针遍历链表,慢指针每次走一步,快指针每次走两步。当快指针走到链表末尾时,慢指针刚好走到链表的中点。),则说明链表无环。原创 2024-08-13 10:45:20 · 708 阅读 · 0 评论 -
C++/LeetCode---expected member name or ‘;‘ after declaration specifiers
确保编译器版本与代码兼容。某些编译器可能对特定语法有更严格的要求。C++ 中未初始化的变量会导致未定义行为。之前的代码是否有语法错误,例如遗漏了分号或括号。错误原因:这里少了一个{原创 2024-08-13 10:42:25 · 547 阅读 · 0 评论 -
LeetCode---138. 随机链表的复制(回溯 + 哈希表)
本题要求我们对一个特殊的链表进行深拷贝。如果是普通链表,我们可以直接按照遍历的顺序创建链表节点。而本题中因为随机指针的存在,。一个可行方案是,我们利用回溯的方式,让每个节点的拷贝操作相互独立。原创 2024-08-12 15:31:20 · 193 阅读 · 0 评论 -
LeetCode---31. 下一个排列
下一个排列的定义是:给定数字序列的字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。原创 2024-08-12 15:03:10 · 167 阅读 · 0 评论 -
LeetCode---数组中缺失/重复数字的解决办法
sort后一步一步遍历。原创 2024-08-12 14:32:06 · 320 阅读 · 0 评论 -
LeetCode---287. 寻找重复数(用负号对数组进行标记)
【代码】LeetCode---287. 寻找重复数(用负号对数组进行标记)原创 2024-08-12 14:31:34 · 195 阅读 · 0 评论 -
LeetCode---169. 多数元素(Boyer-Moore 投票算法)
【代码】LeetCode---169. 多数元素(Boyer-Moore 投票算法)原创 2024-08-12 09:24:15 · 522 阅读 · 0 评论 -
LeetCode---494. 目标和(回溯/深搜)
【代码】LeetCode---494. 目标和(回溯/深搜)原创 2024-08-10 15:35:47 · 234 阅读 · 0 评论 -
LeetCode---712. 两个字符串的最小ASCII删除和(动态规划,初始化时更改的字符为前面的累加)
int。原创 2024-08-10 11:04:54 · 271 阅读 · 0 评论 -
LeetCode---343. 整数拆分(动态规划,细分为能拆分和不能拆分(有的拆分完数值更小了))
【代码】LeetCode---343. 整数拆分(动态规划,细分为能拆分和不能拆分(有的拆分完数值更小了))原创 2024-08-10 10:19:23 · 205 阅读 · 0 评论 -
LeetCode---53. 最大子数组和(动态规划,定义以i结尾的子数组的性质)
【代码】LeetCode---53. 最大子数组和(动态规划,定义以i结尾的子数组的性质)原创 2024-08-10 09:32:08 · 111 阅读 · 0 评论 -
LeetCode---213. 打家劫舍 II(动态规划,用去掉第一个元素或者去掉最后一个元素的办法把环拆开)
如何才能保证第一间房屋和最后一间房屋不同时偷窃呢?如果偷窃了第一间房屋,则不能偷窃最后一间房屋,因此偷窃房屋的范围是第一间房屋到最后第二间房屋;如果偷窃了最后一间房屋,则不能偷窃第一间房屋,因此偷窃房屋的范围是第二间房屋到最后一间房屋。假设数组 nums 的长度为 n。如果不偷窃最后一间房屋,则偷窃房屋的下标范围是 [0,n−2];如果不偷窃第一间房屋,则偷窃房屋的下标范围是 [1,n−1]。原创 2024-08-09 17:02:25 · 187 阅读 · 0 评论 -
LeetCode---309. 买卖股票的最佳时机含冷冻期(动态规划,f[i] 表示第 i 天结束之后的累计最大收益)
我们用。根据题目描述,由于我们最多只能同时买入(持有)一支股票,并且卖出股票后有冷冻期的限制,因此我们会有三种不同的状态:我们目前持有一支股票,对应的「累计最大收益」记为 f[i][0];我们目前不持有任何股票,并且处于冷冻期中,对应的「累计最大收益」记为 f[i][1];我们目前不持有任何股票,并且不处于冷冻期中,对应的「累计最大收益」记为 f[i][2]。原创 2024-08-09 15:48:18 · 194 阅读 · 0 评论 -
LeetCode---121. 买卖股票的最佳时机(找到当前位置之前的所有元素中的最小值,然后用当前元素减去此最小值来求收益)
【代码】LeetCode---121. 买卖股票的最佳时机(找到当前位置之前的所有元素中的最小值,然后用当前元素减去此最小值来求收益)原创 2024-08-09 14:55:17 · 188 阅读 · 0 评论 -
LeetCode---650. 两个键的键盘(动态规划,前面状态(取余,成倍的变化)转换来的)
【代码】LeetCode---650. 两个键的键盘(动态规划,前面状态(取余,成倍的变化)转换来的)原创 2024-08-09 13:00:47 · 238 阅读 · 0 评论 -
LeetCode---72. 编辑距离(动态规划,找好边界条件)
int。原创 2024-08-09 10:09:01 · 194 阅读 · 0 评论 -
LeetCode---474. 一和零(不要忘了考虑一个字符串中没有0或者没有1的情况,也就是m或者n为0的情况)
int>>int。原创 2024-08-08 20:11:03 · 185 阅读 · 0 评论 -
LeetCode---1995. 统计特殊四元组(用map以空间来换时间,b,c在每一轮大的循环中是一个固定的值)
我们将数组拆成红线分界的两个部分,左边包含a,b;右边包含c,d;我们直接遍历(a,b),将产生n^2的复杂度;而对于c,d的差,我们不再继续叠加循环遍历;而是直接记录每一个可能的c,d的差的个数。每个遍历的b的位置都对应着上图中的一条分界线;c和d一定再右边;我们需要求的就是右边的区间里 d-c = a+b 的个数。这个区间个数怎么求呢?我们也可以用map来计数统计每个不同的cd之差对应的区间个数。如果我们遍历b的顺序是从右往左,则b每往左边移动一位,c就多出一个选择;原创 2024-08-08 17:24:29 · 271 阅读 · 0 评论 -
LeetCode---334. 递增的三元子序列(三个元素可以直接赋值,内存空间变为了常数)
首先,新建两个变量 small 和 mid ,分别用来保存题目要我们求的长度为 3 的递增子序列的最小值和中间值。接着,我们遍历数组,每遇到一个数字,我们将它和 small 和 mid 相比,若小于等于 small ,则替换 small;否则,若小于等于 mid,则替换 mid;否则,若大于 mid,则说明我们找到了长度为 3 的递增数组!原创 2024-08-08 16:07:52 · 170 阅读 · 0 评论 -
LeetCode---24. 两两交换链表中的节点(画图找到两两节点是如何交换的)
【代码】LeetCode---24. 两两交换链表中的节点(画图找到两两节点是如何交换的)原创 2024-08-08 15:17:43 · 145 阅读 · 0 评论 -
LeetCode---142. 环形链表 II
【代码】LeetCode---142. 环形链表 II。原创 2024-08-07 14:30:27 · 220 阅读 · 0 评论 -
LeetCode---2707. 字符串中的额外字符(对于每个位置来说都应该考虑其不被使用的情况)(动态规划))
【代码】LeetCode---2707. 字符串中的额外字符(对于每个位置来说都应该考虑其不被使用的情况))原创 2024-08-06 15:47:39 · 180 阅读 · 0 评论