
刷题随笔
文章平均质量分 53
qq_34987437
这个作者很懒,什么都没留下…
展开
-
树相关算法
上述为递归的方式,下方为非递归方式。原创 2021-12-20 16:48:06 · 162 阅读 · 0 评论 -
算法题小结
建立k个数大小的小顶堆,用数组保存,则第k大的数为小顶堆的第一个数。用数组存储小顶堆,当下标是i,则其左元素为2*i+1,右元素为2*i+2。当建堆时从非叶子结点开始,即最后一个元素k-1的父结点,根据左右元素规律,可以推出其父结点为k为偶数时(k-1为奇数)k/2-1,k为偶数时k/2-3/2,所以非叶子结点的下标为k/2-1。时间复杂度,建堆的复杂度为klogk,后续移动为(n-k)logk,所以时间复杂度为nlogk空间复杂度,因为有递归栈存储空间,所以为logk。...原创 2021-12-04 21:14:08 · 309 阅读 · 0 评论 -
动态规划学习总结
本文结合 代码随想录 + leetcode官方解答,做了学习和总结,仅个人记录学习。代码随想录网址代码随想录动态规划大致分为以下几个问题:1.基础动态规划2.背包问题3.打家劫舍4.股票问题5.子序列问题1.基础动态规划基础使用场景:多为计算最少个数,返回一般为一个整数解决基本思路:1考虑前一个状态和该状态的影响关系(递推公式)2注意起始状态(初始化)3考虑遍历时需要的基础存储量(如数组,变量),决定了循环的层数2.背包问题2.1 01背包问题..原创 2021-11-19 22:50:04 · 816 阅读 · 0 评论 -
对称二叉树:BFS、DFS、递归解答
题目详见:https://leetcode-cn.com/problems/symmetric-tree/description/二叉树结构定义// Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; ...原创 2018-07-02 10:42:10 · 413 阅读 · 0 评论