
笔记
文章平均质量分 63
AI云师兄
公众号:AI 云师兄。互联网研发工程师,关注 AI 技术的最新发展与实际应用,分享学习、工作与编程中的 AI 工具、技巧与心得。
展开
-
拼题A(PTA)公共题集题解收录
拼题 A 公共习题的题解收录原创 2023-01-27 17:08:54 · 7717 阅读 · 0 评论 -
树状数组及查询第K小的数
宏定义lowbit函数#define lowbit(x) ((x) & (-x))add函数,更新当前元素时将所有可分解出当前数的元素均加上 vvoid add(int x, int v) { for (int i = x; i < N; i += lowbit(i)) c[i] += v;}getSum函数,得到前x个元素累加和int getSu...原创 2020-02-14 15:17:05 · 492 阅读 · 0 评论 -
【算法】二分查找详细总结 BinarySearch
二分查找算法的两种实现:第一种:各类教材、百科的常见写法int binarySearch(vector<int> &a, int x) { int left = 0, right = a.size() - 1, mid; while (left <= right) { mid = (left + right) / 2; ...原创 2020-02-14 15:09:07 · 396 阅读 · 0 评论 -
【算法】二叉树顺序存储结构建树方法
顺序存储结构,即使用数组存储,结点从下标为1的位置开始存储,a[i * 2]和a[i * 2 + 1]分别表示a[i]结点的左右孩子。其中若孩子为空,则用 -1 代替。定义结构体:struct node { int data; node *left, *right; node(int x) : data(x) { left = right = NULL; }};...原创 2020-02-14 15:17:22 · 1110 阅读 · 0 评论 -
【算法】二叉树输出根节点到某结点的路径
分析(递归):空树,则查找失败,返回 false当前结点为所要查找的值,输出结果,返回 true以上条件不满足,则向左找或向右找,找着了说明当前结点是根到x路径上的点,输出并返回 true左右都找不到,查找失败,无此结点,返回 falsebool printPath(node* root, int x) { if (root == NULL) return false; ...原创 2020-02-14 15:06:45 · 5701 阅读 · 0 评论 -
【算法】判断是否为二叉搜索树
题目来源:98. Validate Binary Search Tree习题4.3 是否二叉搜索树 (25分)输入: 2 / \ 1 4 / \ 3 5输出: true输入: 5 / \ 1 4 / \ 3 6输出: false起初使用堆的方式判定是不对的,二叉搜索树的任意结点应该 总大于...原创 2020-02-14 15:05:34 · 875 阅读 · 0 评论 -
【算法】动态规划 - 最长不下降子序列(LIS)
最长不下降子序列(Longest Increasing Sequence):在一个数字序列中,找到一个最长的子序列(可以不连续),使得这样的子序列是不下降(即非递减)的。例如序列 a = {1, 2, 3, -1, -2, 7, 9},它的最长不下降子序列是 {1, 2, 3, 7, 9} 长度为5,{1, 2, 3} 和 {-2, 7, 9} 也是非递减序列但不是最长的。动态规划求解:dp[...原创 2020-02-14 15:04:26 · 849 阅读 · 0 评论 -
【算法】树的同构 Isomorphism
给定两棵树 T1 和 T2,如果 T1 可以通过若干次左右孩子互换变成 T2,则称两棵树是 同构 的。相关题目:7-3 树的同构 (25分)6-7 Isomorphic (20分)分析(递归求解):都为空树,视为同构 => True其中一棵为 NULL => False以上条件不满足,则两棵树均不为空,此时若值不相等,则不是同构 => False当前两结点...原创 2020-02-14 15:00:40 · 298 阅读 · 0 评论 -
【笔记】并查集
不管后面写了啥,一定要把最重要的写在前面:(总记不住)使用并查集前 一定要初始化、一定要初始化、一定初始化用 findFather(i) 找根结点,不是 father[i] 数组并查集的基本操作使用数组表示并查集:int father[N];father[i] 表示元素 i 的父亲结点初始化初始情况下,每个元素都是单独的集合,因此其父结点是自己,这在并查集中被称为 Refle...原创 2020-02-14 14:58:55 · 141 阅读 · 0 评论 -
【笔记】C语言的特殊输入问题
在 PTA 上问题碰到特殊输入问题,做个小的笔记。在 L2-012 关于堆的判断 (25分) 这道题中,题目要求对给出的命题做判断,因为所给的命题是不确定的,无法在程序中直接使用scanf的格式化输入。最初通过cin >> string的方式读入数据,通过字符串解析、求子串取出数据,提交的代码出现运行时错误,之后是发现题目中说给的数据是包括负数的,包含负数对扣数字的操作又要麻烦不少。...原创 2020-02-14 14:57:54 · 270 阅读 · 0 评论 -
【C/C++】move函数的概念与使用
std::move is used to indicate that an object t may be “moved from”, i.e. allowing the efficient transfer of resources from t to another object.In particular, std::move produces an xvalue expression ...原创 2020-02-14 14:56:22 · 3334 阅读 · 0 评论 -
【数据结构】堆、堆排序、堆的应用
堆只关心 父子结点间 的大小关系,对兄弟结点不做要求,即只需要满足根结点总大于或小于所有孩子结点。堆排序是选择排序的一种改进,选择排序进行 n - 1 遍历,每次选出最小的元素放在有序序列的最后一个位置,再在剩下的序列中选择最小的元素。所以选择排序产生的序列 前 m (<= n) 项 总是有序的。堆排序通过优化查找 最大或最小值 的时间改进快速排序。升序排序,将原序列建...原创 2020-02-14 14:48:43 · 191 阅读 · 0 评论 -
Kotlin 作用域函数
官方参考资料:https://kotlinlang.org/docs/reference/scope-functions.htmlKotlin 的 Scope Functions 包括 let、run、with、apply、also 等Basically, these functions do the same: execute a block of code on an object. W...原创 2020-02-14 14:42:05 · 137 阅读 · 0 评论