摘要: LeetCode刷题之BFS算法 1.基本思路及代码框架 BFS算法起源于二叉树的层序遍历,其核心是利用队列这种数据结构。 BFS的核心思想就是把一些问题抽象成图,从一个点开始,向四周扩散。一般来说,我们写BFS算法都是用到队列这种数据结构,每次将一个节点周围的所有节点加入队列。 BFS和DFS最主 阅读全文
posted @ 2021-11-25 13:18 IU_UI 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 《C++Primer 第五版》 ​ ——读书随笔集 第八章 8.1 IO类 istream,(输入流)类型,提供输入操作 ostream ,(输出流)类型,提供输出操作 cin,一个istream对象,从标准输入读取数据‘ cout,一个ostream对象,向标准输出写入数据 cerr,一个ostr 阅读全文
posted @ 2021-11-24 18:44 IU_UI 阅读(55) 评论(0) 推荐(0) 编辑
摘要: LeetCode刷题之DFS算法 1.基本思路及代码框架 使用DFS或BFS算法遍历二维数组 在二维矩阵中使用DFS搜索,就是把二维矩阵中的每一个位置看成一个节点,这个节点的上下左右四个位置就是相邻节点,那么整个可以抽象为一幅网状的图结构。 根据数据结构和算法思维的框架,根据二叉树的遍历框架写出二维 阅读全文
posted @ 2021-11-24 12:43 IU_UI 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 《Linux就该这么学》 读书随笔集 第二章 2.1强大好用的Shell Ctrl+c组合键:当同时按下键盘上的Ctrl和字母c的时候,意味着终止当前进程的运行。假如执行了一个错误命令,或者是执行某个命令后迟迟无法结束,这时就可以冷静地按下Ctrl+c组合键,命令行终端的控制权会立刻回到我们手中。 阅读全文
posted @ 2021-11-22 21:37 IU_UI 阅读(88) 评论(0) 推荐(0) 编辑
摘要: LeetCode之搜索专题 1.回溯算法 回溯方法基本套路: result = []; def backtrack(): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择 1.LeetCode之 阅读全文
posted @ 2021-11-22 15:30 IU_UI 阅读(93) 评论(0) 推荐(0) 编辑
摘要: LeetCode刷题之洗牌算法 1.洗牌算法的思路 共有 n 个不同的数,根据每个位置能够选择什么数,共有 n! 种组合。 题目要求每次调用 shuffle 时等概率返回某个方案,或者说每个元素都够等概率出现在每个位置中。 我们可以使用 Knuth 洗牌算法,在 O(n) 复杂度内等概率返回某个方案 阅读全文
posted @ 2021-11-22 10:25 IU_UI 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 《C++Primer 第五版》 ​ ——读书随笔集 第七章 7.1.4 构造函数 合成的默认构造函数 如果我们没有显示地定义构造函数,编译器就会为我们构造一个默认构造函数(合成的默认构造函数),构造规则如下: 如果存在类内的初始值,用它来初始化成员。 否则,默认初始化该成员。 某些类不能依赖于合成的 阅读全文
posted @ 2021-11-21 00:07 IU_UI 阅读(26) 评论(0) 推荐(0) 编辑
摘要: LeetCode刷题笔记 排序算法 稳定与不稳定 内排序和外排序 内排序:待排序的所有记录都放置在内存中。 外排序:由于记录的个数太多,不能同时放在内存中,整个排序过程需要在内外存之间多次交换数据才能进行。 //排序所有的顺序表结构 #define MAXSIZE 10000; typedef st 阅读全文
posted @ 2021-11-19 15:25 IU_UI 阅读(168) 评论(0) 推荐(0) 编辑