C/C++语言刷题
文章平均质量分 74
算题从基础开始逐渐深入
EvLast
大鹏一日乘风起, 扶摇直上九万里
展开
-
我在代码随想录|写代码Day27 | 贪心算法 | 理论基础, 455.分发饼干, 376. 摆动序列,53. 最大子序和
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-11 23:28:31 · 1004 阅读 · 0 评论 -
我在代码随想录|写代码Day26 |回溯算法|332. 重新安排行程 , 51. N皇后 , 37. 解数独
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-05 22:32:10 · 1013 阅读 · 0 评论 -
我在代码随想录|写代码Day26 |回溯算法|491.递增子序列 , 46.全排列 , 47.全排列 II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-04 23:31:17 · 1049 阅读 · 0 评论 -
我在代码随想录|写代码Day25 |回溯算法|93.复原IP地址 , 78.子集 , 90.子集II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-04 22:44:39 · 974 阅读 · 0 评论 -
我在代码随想录|写代码Day24之回溯 -39. 组合总和 ,40. 组合总和 II ,131. 分割回文串
专题 : 数据结构帮助小白快速入门原创 2024-02-03 23:55:34 · 794 阅读 · 0 评论 -
我在代码随想录|写代码Day23之回溯 -回溯算法基础 , 77. 组合,216. 组合总和 III ,17. 电话号码的字母组合
本篇将题目的三个要点一一列出,并重点强调了和前面讲解过的 77. 组合 和 216.组合总和III 的区别,本题是多个集合求组合,所以在回溯的搜索过程中,都有一些细节需要注意的。原创 2024-02-03 23:35:30 · 900 阅读 · 0 评论 -
我在代码随想录|写代码Day22之二叉树-701. 二叉搜索树中的插入操作,450. 删除二叉搜索树中的节点,669. 修剪二叉搜索树 ,108. 将有序数组转换为二叉搜索树
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-01 23:30:20 · 977 阅读 · 1 评论 -
我在代码随想录|写代码Day21之二叉树-501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先,235. 二叉搜索树的最近公共祖先
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-30 23:51:10 · 912 阅读 · 2 评论 -
我在代码随想录|写代码Day20之二叉树-700. 二叉搜索树中的搜索,98. 验证二叉搜索树,530.二叉搜索树的最小绝对差
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-30 22:52:37 · 417 阅读 · 3 评论 -
我在代码随想录|写代码Day19之二叉树-106.从中序与后序遍历序列构造二叉树,654.最大二叉树,617.合并二叉树
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-27 23:29:03 · 393 阅读 · 0 评论 -
我在代码随想录|写代码Day18之二叉树-404. 左叶子之和,513. 找树左下角的值,112. 路径总和,113. 路径总和 II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-26 00:14:42 · 977 阅读 · 0 评论 -
我在代码随想录|写代码Day17之二叉树-222.完全二叉树的节点个数,110.平衡二叉树,257. 二叉树的所有路径
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-25 21:56:28 · 988 阅读 · 0 评论 -
我在代码随想录|写代码Day16之二叉树-二叉树的层序遍历, 二叉树的层次遍历 II, 二叉树的右视图,N叉树的层序遍历,在每个树行中找最大值,填充每个节点的下一个右侧节点指针,二叉树的最大/小深度
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-24 18:59:13 · 927 阅读 · 1 评论 -
我在代码随想录|写代码Day11之双指针19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
2.定义fast指针和slow指针,初始值为虚拟头结点。4.fast和slow同时移动,直到fast指向末尾。专题 : 数据结构帮助小白快速入门。5.删除slow指向的下一个节点。原创 2024-01-20 08:12:15 · 414 阅读 · 0 评论 -
我在代码随想录|写代码Day14之栈和队列-150. 逆波兰表达式求值,239. 滑动窗口最大值,347. 前 K 个高频元素
灵魂四问C++中stack,queue 是容器么?我们使用的stack,queue是属于那个版本的STL?我们使用的STL中stack,queue是如何实现的?stack,queue 提供迭代器来遍历空间么?陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中不一定是连续分布的。陷阱2:缺省情况下,默认底层容器是deque,那么deque在内存中的数据分布是什么样的呢?答案是:不连续的,下文也会提到deque。原创 2024-01-23 00:01:48 · 1097 阅读 · 3 评论 -
ACM题解Day2|1.台风, 2.式神考试,3.DNA,4.方程求解
根据题目的意思,我们不难求出以下两个数值:- 得到了满分的题一共有 *n*−*m* 道;- 得到了满分的题目,加起来一共有 1e7 x (n - m) / n 分但是知道了得到了满分的题目一共有多少分,如何用其,以及非满分的题目的个数去计算出结果呢?这一关键在于“循环枚举”的思想,即利用计算机较高的运行速度,使用循环结构去计算出最后的答案。那对于这一道题目我们如何利用到这个思想求解呢?我们可以枚举有多少题目获得了一半分。假设是有 i 道题目获得了一半的分数,则有:原创 2024-01-22 00:02:34 · 1363 阅读 · 1 评论 -
我在代码随想录|写代码Day12之双指针-三数之和,四数之和,N数之和篇
双指针法:其实这道题目使用哈希法并不十分合适,因为在去重的操作中有很多细节需要注意,在面试中很难直接写出没有bug的代码。而且使用哈希法 在使用两层for循环的时候,能做的剪枝操作很有限,虽然时间复杂度是O(n^2),也是可以在leetcode上通过,但是程序的执行时间依然比较长 。原创 2024-01-20 14:39:15 · 859 阅读 · 0 评论 -
我在代码随想录|写代码Day10之双指针 -27. 移除元素,151. 反转字符串中的单词,206.反转链表
去除所有空格并在相邻单词之间添加空格, 快慢指针,遇到非空格就处理,即删除所有空格,手动控制空格,给单词之间添加空格。= 0说明不是第一个单词,需要在单词前添加空格,补上该单词,遇到空格说明单词结束,slow的大小即为去除多余空格后的大小,去除多余空格,保证单词之间之只有一个空格,且字符串首尾没空格,removeExtraSpaces后保证第一个单词的开始下标一定是0,到达空格或者串尾,说明一个单词结束。进行翻转,翻转,注意是左闭右闭 []的翻转,更新下一个单词的开始下标start。原创 2024-01-20 07:41:12 · 975 阅读 · 0 评论 -
我在代码随想录|写代码Day9之28. 实现 strStr(),459. 重复的子字符串,55. 右旋字符串(第八期模拟笔试)
题意就是要我们找一个字符串中有没有另一个字符串,然后如果有返回第一个字符出现的下标。用查找,就是上面的标准KMP写法,也可以用函数。专题 : 数据结构帮助小白快速入门。2.函数find()查找方法。思路:和上面这题差不多。原创 2024-01-20 03:33:05 · 392 阅读 · 1 评论 -
ACM题解Day1|1.Accurate Movement ,2.Help the Support Lady, 3.Absolute Game
思路 : 本题为模拟题主要是模拟方块的移动,其中 以两木块的最右端做为记录点. 先挪动a, 每次a块只能挪到和b块相同的位置, b块每次最多挪动(b-a).为什么因为有限制挡板然后俩木块要不能同时移动只能移动一一个03.1415927。原创 2024-01-19 15:55:25 · 697 阅读 · 1 评论 -
我在代码随想录|写代码Day8之 344. 反转字符串,541. 反转字符串 II, 54. 替换数字(第八期模拟笔试)
思路原地变化,C++直接调用函数进行左右交换,向中间移动sawp()c++用于交换俩元素的方法。原创 2024-01-16 22:21:04 · 457 阅读 · 1 评论 -
我在代码随想录|写代码Day6之 454.四数相加II ,三数之和
三数之和,四数相加原创 2023-12-20 22:22:03 · 83 阅读 · 0 评论 -
我在代码随想录|写代码Day5之242. 有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和
如果b的最后一个元素大于或等于x,则使用它并递增ans,如果b的最后两个元素的组合小于或等于,最后一个元素a和b的乘积,使用乘积并将ans增加2,如果b的最后两个元素的组合大于乘积,在a和b的最后两个元素中,使用b的最后二个元素之和,并将ans增加2,,就是如果字符串相同然后只是位置不同,这个样子哈希表每个字符索引的值会相等),然后就可以判断是否符合题目要求。还是要从hash表的元素存在排除,一个hash表用于记录我们一个容器中的元素,一个用于记录我们是否存储相通元素。,(遍历长度不大于最长的遍历)原创 2023-12-18 23:35:47 · 336 阅读 · 0 评论 -
我在代码随想录|写代码Day4之24. 两两交换链表中的节点,面试题 02.07. 链表相交,19. 删除链表的倒数第 N 个结点,141. 环形链表,142. 环形链表 II
6.竟然循环后我们用判断我们当前结点是否为偶结点,如果是偶结点我们就将值加入到我们新创建的链表头结点后面,如果奇数我们就创建一个结点然后用tmp指向这个结点然后对这个结点进行操作。其实这个错误是由指针越界操作造成的如果p本身就指向空,那么我们对空结点的next域怎么操作,换句话而言,本身空结点就没有next域。5.然后我们进入循环我们移动我们的头指针,为什么是head?4.其中pre是虚拟头结点,cur是指针,tmo是用于存储指针的指针。3.我们创建一个快慢指针(其实我们这题的本质还是快慢指针),原创 2023-12-17 23:58:15 · 274 阅读 · 0 评论 -
我在代码随想录|写代码Day3之203. 移除链表元素,707. 设计链表,206. 反转链表
这个是双指针版本代码:上面的注释希望大家思考下然后写出递归版本代码。原创 2023-12-16 01:26:56 · 179 阅读 · 0 评论 -
我在代码随想录|写代码Day2之977 有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵 II
我们定义俩个指针一个指向我们得到的数组的首地址,然后一个指向我们数组的尾地址,然后我们在定义一个数组去存储我们新的数组,然后我们该进行什么操作呢?我们将头指针和尾指针指向的元素进行比较,当我们的头指针元素的平方小于尾指针元素的平方我们就将哪个最大的尾元素存储在我们另一个数组尾指针指向的哪个空间,如果头指针元素的平方大于等于尾指针元素的平方我们就将哪个最大的尾元素存储在我们另一个数组尾指针指向的哪个空间,原创 2023-12-15 01:14:14 · 59 阅读 · 0 评论 -
题目分析,高度理解一维二维数组的申请和[]是什么运算符
动态申请二维数组并输出非负数和和负数出现次数思路:输入数组大小,然后申请内存并不对其初始化,提高速度,传入数据到申请的数组中,判断如果数组中有元素小于0对其进行计数,否则加上非0数最后输出答案,释放内存。原创 2023-12-07 00:20:39 · 172 阅读 · 0 评论 -
算法题--排椅子(贪心)
这个C++程序是一个非常特定的问题的解决方案。代码逻辑主要涉及一些数组操作和排序,下面我会逐步解释代码的各个部分。原创 2023-12-01 21:43:00 · 332 阅读 · 0 评论 -
暴力求解欲哭无泪之保安问题
暴力求解后:对这题理解更深刻但是也明白暴力解题的不充之处,不段的思考让自己进步,才是成功。写题目想到第一个方法便是暴力求解,然后少情况。方向一:身为程序员遇到过的奔溃瞬间。方向三:在解决完后获得的收获和体会。方向二:如何解决遇到的奔溃瞬间。原创 2023-11-21 20:45:58 · 165 阅读 · 0 评论 -
判断是否为2的幂
判断2的次幂原创 2023-11-18 23:08:38 · 307 阅读 · 0 评论 -
C/C++元素查找并计数和判断
函数找到了子串,则返回子串在字符串中的起始位置(下标),即大于等于 0 的整数值;如果未找到子串,则返回。每次找到子串后,将计数器加一,并继续在剩余的字符串中查找,直到整个字符串被搜索完毕。具体来说,在代码中,当内层循环找到满足条件的解后,会将。,只有在找到满足条件的解时才输出 “Yes”,否则输出一次 “No”,避免了重复输出。变量的使用,我们可以控制程序的输出,确保只输出一次正确的结果。的值,我们可以判断子串是否在字符串中出现,并进行相应的处理。时,表示已经搜索完整个字符串,没有找到更多的子串。原创 2023-10-27 22:57:25 · 1613 阅读 · 0 评论 -
C语言实现等比数列
在循环中,我们使用 pow() 函数来计算当前项的值。pow(x, y) 函数用于求 x 的 y 次方。注意,该函数需要引入 <math.h> 头文件。在这个示例代码中,我们假设等比数列的首项为2,公比为3,项数为5。通过一个循环,我们计算并打印出等比数列中的每一项。这样,我们就成功地实现了一个等比数列。你可以根据需要调整首项、公比和项数来生成不同的等比数列。要在 C 中实现一个等比数列,可以使用循环结构和简单的数学运算。等比数列: 2 6 18 54 162。c中怎么样实现一个等比数列。原创 2023-10-18 17:46:11 · 1217 阅读 · 0 评论 -
C常用函数及用法(更新中)
strcmp(const char *s1, const char *s2):比较字符串 s1 和 s2 的大小,若 s1 大于 s2,则返回正整数,若 s1 等于 s2,则返回 0,若 s1 小于 s2,则返回负整数。fgets(char *str, int n, FILE *stream):从文件流 stream 中读取最多 n - 1 个字符到字符串 str 中,并在读完或遇到换行符时停止,返回指向 str 的指针。其中,ptr 是已分配内存块的指针,size 是重新调整的内存块大小。原创 2023-10-18 17:43:40 · 1484 阅读 · 0 评论 -
问c中怎么交换数据
c中怎么样交换俩变量的值?原创 2023-10-18 17:31:23 · 50 阅读 · 0 评论 -
问怎么反转数据
反转数据(Reverse data)是指将数据的顺序颠倒过来。反转数据在编程中经常用于字符串、数组或链表等数据结构的处理。原创 2023-10-18 17:13:40 · 104 阅读 · 0 评论 -
vector<int>是什么?
是更灵活和方便的容器,适用于动态大小的数组需求,而数组则适用于固定大小的数组需求,或者在特定场景下对性能有要求的情况。内部使用连续的、按照顺序排列的存储空间来存储元素,在索引访问元素时可以直接通过指针计算元素地址,因此访问速度较快。可以在运行时动态地调整大小,并且支持快速随机访问元素,可以在尾部插入或删除元素,也可以在中间插入或删除元素。是使用 C++ 中的数组来创建一个固定大小的整数类型数组,该数组的元素为。结尾的迭代器,指向的是最后一个元素的下一个位置。中的一部分,还有其它很多方法可以用于访问和操作。原创 2023-10-18 16:49:11 · 2813 阅读 · 0 评论 -
向量和指针有什么关系
然而,需要注意的是,尽管向量使用了指针来实现其底层逻辑,但向量本身是一种高级的数据结构,提供了更方便和简化的接口和操作方式,而不需要直接处理指针的细节。指针更适合低级和底层的内存操作,而向量更适合高级的数据存储和管理。向量提供了高级的接口和方法,隐藏了底层的内存管理细节,更加方便和简化了操作。因此,指针在向量的实现中起到了关键的作用,用于管理内存、访问元素、动态扩展和内存释放。1. 存储方式:指针是用来存储变量或对象的内存地址的变量,而向量是一种数据结构,用于存储和管理元素集合。向量和指针有什么关系?原创 2023-10-18 16:47:55 · 165 阅读 · 0 评论 -
c++怎么保留小数和进制转换
,定义了一个名为 `decimalToBase` 的函数,它接受两个参数:`num` 表示要转换的十进制数,`base` 表示要转换的目标进制。该函数通过不断取余和除法运算来计算出每位的值,并将其插入到结果字符串中。最终,将结果字符串作为函数的返回值。原创 2023-10-15 22:03:37 · 2056 阅读 · 1 评论 -
C/C++常见问题
首先定义了一个字符数组str,并初始化为"hello",然后使用for循环遍历该数组,直到遇到字符'\0'才停止循环,每次迭代输出当前遍历到的字符,最后返回0表示程序正常结束。3.) 需要注意的是,在使用 %s 输出字符串时,数组的最后一个元素必须是 null 字符('\0'),这样才能正确地识别字符串的结尾。如果没有在数组的末尾显式添加 null 字符,则应该手动在数组的末尾添加一个 null 字符,例如 char str[] = {'h', 'e', 'l', 'l', 'o', '\0'};原创 2023-10-07 21:23:43 · 129 阅读 · 2 评论 -
C++怎么样入门
理解面向对象编程:C++是一种面向对象编程语言,理解面向对象编程的思想和原则对于学习C++非常重要,面向对象算是C++的核心了,这个要理解和C指针差不多都要有时间去沉淀。2. 内存管理:C++需要手动进行内存管理,包括内存的分配和释放,如果处理不当可能导致内存泄漏、悬垂指针等问题,需要对内存操作有深入的理解和规范的使用。5. 标准库丰富而庞大:C++的标准库涵盖了广泛的功能和组件,如容器、算法、字符串处理、输入输出等,其中一些功能使用起来较为复杂,需要熟悉和掌握。下面我给出相应网站供大家学习。原创 2023-09-29 21:04:38 · 40 阅读 · 0 评论