首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与刷题
燕尾向心
创建于2023-02-01
订阅专栏
跟着代码随想录60天刷题计划
暂无订阅
共33篇文章
创建于2023-02-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
数据结构以学带练day33——休息日
本周进入了贪心算法的刷题章节,贪心算法确实思维灵活并且每个题各有各的解法。目前唯一能想到的好办法就是背题+理解!
数据结构以学带练day32——买卖股票的最佳时机 II、跳跃游戏、跳跃游戏Ⅱ
题目 122. 买卖股票的最佳时机 II ⭐贪心法 最终利润是可以分解的,假如第0天买入,第3天卖出,那么利润为:prices[3] - prices[0]。相当于(prices[3] - price
数据结构以学带练day31——贪心算法基础、分发饼干、摆动序列、最大子序和
贪心算法基础理论 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心。 贪心算法一般分为如下四步:
数据结构以学带练day30——重新安排行程、N皇后、解数独
题目 332.重新安排行程 思路 以输入:[["JFK", "KUL"], ["JFK", "NRT"], ["NRT", "JFK"]]为例,抽象为树形结构如下: 递归函数参数 使用unordere
数据结构以学带练day29——递增子序列、全排列、全排列Ⅱ
题目 491.递增子序列 回溯法 本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。所以不能使用之前的去重逻辑。 在图中可以看出,同一父节点下的同层上使用过的元素就不能再使用了
数据结构以学带练day28——复原IP地址、子集、子集Ⅱ
题目 93.复原IP地址 思路 递归三步 递归参数 startIndex一定是需要的,因为不能重复分割,记录下一层递归分割的起始位置。 还需要一个变量pointNum,记录添加逗点的数量。 递归终止条
数据结构以学带练day27——组合总和、组合总和II、分割回文串
题目 39. 组合总和 思路 依旧是按照回溯模板来写,只是这道题可以重复取值,所以index不需要每次向下遍历都+1了。 整体代码 剪枝 40. 组合总和 II 思路 本题和39.组合总和有点区别:
数据结构以学带练day26——休息日
所谓休息日,却是我补打卡的日子。自出差后事情比较多,经常忙到夜里,来不及打卡,有时候能打卡也是草草看看代码随想录的思路。并未真正做题。 因此从二叉树往后章节,包括后面的回溯章节,都需要再次回过头来看。
数据结构以学带练day25——组合总和III、电话号码的字母组合
题目 216.组合总和III 思路 确定递归函数参数 一维数组path来存放符合条件的结果,二维数组result来存放结果集。 targetSum(int)目标和,也就是题目中的n。 k(int)就是
数据结构以学带练day24——回溯基础、组合
回溯基础知识 什么是回溯法? 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯是递归的副产品,只要有递归就会有回溯。 回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯的本质是穷举,
数据结构以学带练day23——修剪二叉搜索树、将有序数组转换为二叉搜索树(可解决22号)、把二叉搜索树转换为累加树
题目 669. 修剪二叉搜索树 递归法 108.将有序数组转换为二叉搜索树 思路 根据数组构造一棵二叉树。本质就是寻找分割点,分割点作为当前节点,然后递归左区间和右区间。有序数组构造二叉搜索树,寻找分
数据结构以学带练day22——二叉搜索树的最近公共祖先、二叉搜索树中的插入操作、删除二叉搜索树中的节点
题目 235. 二叉搜索树的最近公共祖先 思路 由于是二叉搜索树(有序的),则利用层序遍历,首次出现在[p,q]区间内的那个节点即为公共祖先。即因为是有序树,所以 如果 中间节点是 q 和 p 的公共
数据结构以学带练day21——二叉搜索树的最小绝对差、二叉搜索树中的众数、二叉树的最近公共祖先
题目 530.二叉搜索树的最小绝对差 ⭐递归法 二叉搜索树采用中序遍历,其实就是一个有序数组。在一个有序数组上求两个数最小差值。最直观的想法,就是把二叉搜索树转换成有序数组,然后遍历一遍数组,就统计出
数据结构以学带练day20——最大二叉树、合并二叉树 、二叉搜索树中的搜索、验证二叉搜索树
题目 654.最大二叉树 思路 构造树一般采用的是前序遍历,因为先构造中间节点,然后递归构造左子树和右子树。 确定递归函数的参数和返回值: 参数传入的是存放元素的数组,返回该数组构造的二叉树的头结点,
数据结构以学带练day19——复习日
本周二叉树一题多解,导致量特别大,加上涉及递归和少于回溯的内容,导致有点跟不上,另外出差也耽搁了很多时间。后续这周的任务要重新多来过几遍。现在只能尽力理解并且跟上步伐。
数据结构以学带练day18——找树左下角的值、路径总和、构造二叉树
题目 513.找树左下角的值 ⭐层序遍历法(好理解) 递归法 在树的最后一行找到最左边的值。 如何判断是最后一行呢?其实就是深度最大的叶子节点一定是最后一行。 那么如何找最左边的呢?可以使用前序遍历(
数据结构以学带练day17——平衡二叉树、二叉树的所有路径 、左叶子之和
题目 110.平衡二叉树 深度&高度 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。 求深度可以从上到下去查 所以需要前序
数据结构以学带练day16——树的最大深度、二叉树的最小深度、完全二叉树的节点个数
题目 104.二叉树的最大深度 层序遍历法(Day15) 深度遍历法(后序&递归) 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 二叉树节点的深
数据结构以学带练day15——二叉树的层序遍历、反转二叉树、对称二叉树
二叉树的层序遍历 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑。 102. 二叉树的层序遍历 思路 利用一个队列存
数据结构以学带练day13——滑动窗口最大值、前 K 个高频元素
题目 239. 滑动窗口最大值 我的思路——暴力解法$O(nk)$ 每次窗口滑动到一个位置就去计算一下这个窗口里的最大值:(提交超时) 单调队列 DIY一个单调队列,其中队列的front用于存放滑动窗
下一页