
错题复习
文章平均质量分 93
C++,Linux,计算机网络
老汉忒cpp
重生之双非学cpp非常荔枝
展开
-
笔试编程算法题(五)(C++代码)
解法:动态规划状态表示:dp[i]表示,以i位置为结尾的,最长的有效括号。状态转移方程:这里就需要进行分情况讨论了。1.当s[i] == '('时:此时的s[i - 1]又分为两种情况:a.当s[i - 1] == ')'时:此时这两个字符就是 ... )(...,显然这已经不可能拼接成一个有效的括号了,所以此时dp[i] = 0。原创 2024-12-18 22:44:27 · 848 阅读 · 0 评论 -
笔试编程算法题笔记(四)(C++代码)
解法:二分查找本题主要考察对二分查找的理解程度,在一次二分查找中,我们需要清楚的知道我们要查找的是以左端点为主还是以右端点为主的,二者在代码上也会存在一些差别。public:// 先找左端点//left可以不用重置// 再找右端点。原创 2024-11-10 13:11:45 · 692 阅读 · 0 评论 -
简单了解前缀树/字典树(Trie树)C++代码
Trie 的形状和单词的插入或删除顺序无关,也就是说对于任意给定的一组单词,Trie 的形状都是唯一的。查找或插入一个长度为 L 的单词,访问 next 数组的次数最多为 L+1,和 Trie 中包含多少个单词无关。Trie 的每个结点中都保留着一个字母表,这是很耗费空间的。如果 Trie 的高度为 n,字母表的大小为 m,最坏的情况是 Trie 中还不存在前缀相同的单词,那空间复杂度就为 O(m * n)。一次建树,多次查询。原创 2024-11-02 22:47:11 · 341 阅读 · 0 评论 -
C++知识点复习
对于这些问题的回答,可以按照思维导图的结构来组织答案,然后再进行回答。(首先,要回答好这个问题,需要注意问题的层次,不要一上来就说新增了某某关键字和语法,在这里我们可以分为五个层次来跟面试官讲解:语法,std容器,多线程,智能指针,右值引用)(这里可以对照着思维导图跟面试官说,聊到某个方面的细节还需要自行搞清楚) 首先来看动态库和静态库的演示:先创建一个头文件里面定义了方法,但是还未实现。实现两个方法的实现分别在add.cc和del.cc中。 然后在创建一个main程序,来调用这两个函数 接着,再将add.原创 2024-10-31 21:41:45 · 743 阅读 · 0 评论 -
大部分基础排序复习C++(归并、快排、堆)
在前 0 ~ i - 1 元素有序的情况下,(依次)将第 i 个元素插入前面已经有序的小序列,先使用二分查找找到插入位置的下标index,然后将区间[index + 1,i] 往后移动,再把原来i位置的值插入到index位置,使其有序。注意事项:在合并有序数组的时候,我们需要一个额外的容器,合并完之后再把结果填回到原数组中,对于这个额外的数组,建议使用全局的变量,这样能节省每层创建和销毁的开销,从而提高效率。先让间隔 h 的元素有序,在使得间隔为 h / 2,一直缩小,一直到 h = 1(此时数组有序)。原创 2024-09-23 12:50:59 · 850 阅读 · 0 评论 -
笔试编程算法题笔记(三 C++代码)
题意简单来说就是,在一个无穷大的棋盘上,不断插入k个皇后,皇后们如果在 同一行,同一列,在一个45°主对角线 在一个135°副对角线上,就可以互相攻击。我们需要判断在第i个皇后插入后,是否存在互相攻击的情况。解法:哈希表。我们只需要将皇后的攻击范围存入哈希表(unordered_set)中,每次插入时判断这个皇后是否在这个攻击范围内即可。因此我们需要创建四个哈希表。对应的行 列,两个对角线。行和列很好理解,关于对角线比如主对角线,如果y - x相等,说明在同一个主对角线上。原创 2024-07-26 23:07:05 · 794 阅读 · 0 评论 -
笔试编程算法题笔记(二)(附带C++代码)
我们注意到该题的测试用例的范围非常的小,这种情况解法大概率就是暴力搜索/递归了。解法:dfs假如n = 4对于每个位置,我们依次进行枚举,用pos记录当前枚举的位置。递归出口,如果pos已经超过了n,说明这是一个合法位置,我们就让ret++,然后return。接下来就是优化---剪枝部分了。在我们的决策树当中,看看给出的示例,2号队员的诉求是要在1号的前面,那么如果我们先枚举了1号,在pos = 2时,1位置已经枚举1号了,也就是不能再出现了1号了,这里就是一个剪枝。原创 2024-07-15 16:24:09 · 1103 阅读 · 0 评论 -
笔试编程算法题笔记(附带C++代码)
用C++刷题的时候,cin和cout的时间效率是不如scanf和printf的,如果输入输出的数据量非常大时,建议使用scanf和printf,不然有可能算法没问题但是还是超时了。另外,有时候我们使用最大值或者最小值的时候,可以不用INT_MAX或者INT_MIN。有时候会导致数据溢出而报错,最大值可以使用 0x3f3f3f3f,最小值可以使用-0x3f3f3f3f。(4个3f)。原创 2024-04-21 20:29:04 · 979 阅读 · 0 评论 -
错题复习笔记(C/C++/Linux系统/计算机网络)1
d是按每4个字节打印的。原创 2023-09-26 10:20:44 · 178 阅读 · 0 评论 -
有关C++的各种问题(新手)
这个是我在学C++的时候,通过偶尔看一些大佬们分享的面经中,看到在我的知识点范围内能理解的问题时,我会把这个问题弄懂后,自己模拟来答一遍。目的一是不断积累巩固知识,二是要锻炼自己的语言表达能力。这篇博客会持续更新我新搜集的问题。原创 2023-08-31 20:04:49 · 144 阅读 · 0 评论