随笔分类 - 数据结构与算法
摘要:题目 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 注意:两结点之间的路径长度是以它们之间边的数目表示。 输入输出 input:[1,2,3,4,5] output:3 input:[4,-7,-3,null,nu
阅读全文
摘要:题目 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n
阅读全文
摘要:无向图的最短路径 s = [9 9 1 1 2 2 2 7 7 6 6 5 5 4]; t = [1 7 7 2 8 3 5 8 6 8 5 3 4 3 ]; w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];%权重 G = graph(s,t,w);%生成稀疏矩阵 plot(
阅读全文
摘要:例题-全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 题解 class Solution { public: void dfs(vector<int> nums,vector<int>& allnum,vector<vector<int>>
阅读全文
摘要:问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式 按从小到大的顺序输出满足条件的四位十进制数。 解答 #include<iostream> using namespace std; int main() { int n, a[5]; for
阅读全文
摘要:常用函数 1. max()、min()、abs()比较数字 这个在math头文件也可以,浮点型的绝对值要用math的fabs #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout <<
阅读全文
摘要:适用范围 深度优先搜索适合解决必须走到最深处(例如对于树,须走到它的叶子节点)才能得到一个解的问题。通常利用递归实现,所以每次递归开始的时候要判断是否达到收敛条件,若达到了则得到一个可行解,若没达到,则对当前状态进行扩展(扩展的时候通常会根据实际情况过滤掉一些非法的状态,这个过程叫剪枝,适当的剪枝有
阅读全文
摘要:适用范围 给定初始状态跟目标状态,要求从初始状态到目标状态的最短路径。 图结构的层次搜索——如寻找迷宫出口 对某一对象,寻找与其相似特征的其他对象,最终推演出结果 迭代方式固定,求初始状态经过多少次迭代可以到达目标状态 广度优先搜索的层序遍历 原始题目 /** * Definition for a
阅读全文
摘要:添加数据 vector<int> myvector; for (int i = 0; i < 10; i++) { myvector.push_back(i);//压入 } 循环读取输入数据 int n; vector<int> myvector; while (cin >> n) { childN
阅读全文