随笔分类 - 数据结构与算法
摘要:学习写法 力扣 Krahets 剑指 Offer 66. 构建乘积数组(表格分区,清晰图解) 两个for循环。 上下两个三角 class Solution { public: vector<int> multiply(const vector<int>& A) { int len=A.size();
阅读全文
摘要:参考学习题解: 剑指 Offer 07. 重建二叉树(分治算法,清晰图解)作者:Krahets 解题思路: 前序遍历性质: 节点按照 [ 根节点 | 左子树 | 右子树 ] 排序。 中序遍历性质: 节点按照 [ 左子树 | 根节点 | 右子树 ] 排序。 以题目示例为例: 前序遍历划分 [ 3 |
阅读全文
摘要:####分治算法 分治算法是一种高效的算法思想,它将问题分解成更小的子问题,通过解决子问题来解决原始问题。它的核心思想是将问题分解成若干个规模更小但结构相同的子问题,并且通过递归的方式解决这些子问题,最终将子问题的解合并起来得到原问题的解。 通常情况下,分治算法包含三个步骤: 分解:将原问题分解成若
阅读全文
摘要:牛客 题目跳转链接 代码随想录 双指针解法 时间复杂度:O(n) 空间复杂度:O(1) class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return str
阅读全文
摘要:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 数据范围 二维数组中元素个数范围 [0,1000] 样例 输入数组: [ [1,2,8,9], [2,4,9,12], [4,7,
阅读全文
摘要:看视频做的笔记 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆 B站UP:工程部老周 ####堆的定义 堆必须是一个完全二叉树 #####完全二叉树 只允许最后一行不为满,且最后一行必须从左往右排序,元素之间不可以有间隔。 ####堆序性 #####大根堆 大根堆中,每个 父节点
阅读全文