开发者导航
算法刷题
使用递归解决“二叉树的前序遍历”问题
二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的前序遍历。 前序遍历: 根左右,第一次经过节点即打印,直到打印null,往回溯,打印右子树。 ...
二叉树遍历的几种概念
二叉树遍历 从根节点往下查找,先找左子树、直至左子树为空(左子节点逐个入栈、直至左子节点为空),再找右子树(出栈找右子节点) 四种顺序:按照排序时根节点...
使用贪心算法解决“三角形的最大周长”问题
从上往下,找到一个节点时,标记这个节点的深度。查看该节点是否为叶子节点,如果是直接返回深度(找到第一个叶子节点即可,后面就不需要判断了)
使用贪心算法解决“柠檬水找零”问题(吊炸天的解法)
从上往下,找到一个节点时,标记这个节点的深度。查看该节点是否为叶子节点,如果是直接返回深度(找到第一个叶子节点即可,后面就不需要判断了)
使用贪心算法解决“最长连续递增序列”问题
从上往下,找到一个节点时,标记这个节点的深度。查看该节点是否为叶子节点,如果是直接返回深度(找到第一个叶子节点即可,后面就不需要判断了)
使用广度优先解决“二叉树的最小深度”问题
从上往下,找到一个节点时,标记这个节点的深度。查看该节点是否为叶子节点,如果是直接返回深度(找到第一个叶子节点即可,后面就不需要判断了)
使用深度优先解决“二叉树的最小深度”问题
遍历整棵树,找到每一个叶子节点,从叶子节点往上开始计算(使用递归),左右子节点都为空则记录深度为1;左右子节点只有一边,深度记录为子节点深度+1;左右...
使用滑动窗口算法解决“子数组最大平均数”问题
滑动窗口是一个大小可变的窗口,左右两端方向一致地向前滑动。它其实是双指针算法中的一个特例。一个指针指向窗口第一个元素,一个指针指向窗口最后一个元素...
合并两个有序数组的三种解法
合并两个有序数组 两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和...
判断“环形链表”中是否有环的两种解法
环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链...