算法基础
DashingPig
菜鸟学生
展开
-
LeetCode_树专题
这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。(2)序列化时:按层序添加结点的数值到字符串res中,如果是空,则添加“n ”输入:root = [1,2,3,null,null,4,5]输出:[1,2,3,null,null,4,5]原创 2023-05-18 21:49:52 · 108 阅读 · 0 评论 -
kmp__记录一个未知原因的循环异常跳出错误
重写kmp_plus,发现有个kmp_index函数里while循环异常跳出,没有达到结束条件,居然神奇的跳出了循环,原因暂时不明,记录。 测试用例,主串为hehelahello,字串为hello 修改之前 #include<iostream> #include<string> using namespace std; int kmp_index(string s, string t); void get_next(string t, int next[]); const int原创 2021-04-02 13:35:28 · 146 阅读 · 0 评论 -
基础训练__剪格子(搜索)(C++)[二维数组传参问题]
二维数组传参和一维差不多,格式为f(b)和void f(b[][N]); 注意,在任何函数中修改b的值,都是修改了实参的值; 类比树的遍历,易知本题需要使用图的DFS搜索; 注意,树的分层结构决定了下一个遍历是必定未访问过的,但图却不同,需要建立一个新的映射数组,判断是否访问过; 注意,为了防止映射数组被修改,必须要在每个函数里新建一个judge数组,用映射数组赋值给judge数组,传参的时候,传judge数组。 题目 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。 本题的要求就是请你编原创 2021-03-27 14:22:02 · 119 阅读 · 0 评论