摘要:
题目链接 452. 用最少数量的箭引爆气球 题目分析 这个题其实有点像区间合并的题目,先对气球按照Xstart升序进行排序,然后计算所有气球可以整合成最少的区间数,返回即可。 但是这里这个题有一个坑,就是在自定义排序的时候,不能直接简单使用a-b作为返回条件,因为在最后一个测试用例中,两个数相减会导 阅读全文
摘要:
题目链接 147. 对链表进行插入排序 思路分析 这个题,就是插入排序的链表版。做的时候要注意保存当前结点的下结点以及及时断开next指针即可。 代码实现 class Solution { public ListNode insertionSortList(ListNode head) { List 阅读全文
摘要:
题目链接 406. 根据身高重建队列 题目思路 这个题给了我们一个二维数组,第二维的含义有两个: 第i个人的身高。 在队列中,第i个人前面有arr[i][1]个人的身高大于或等于自己。 那么这个有点像那个广告牌的做法。首先我们先将数组进行排序,排序规则如下: 如果两者身高相等,那就按照大于或等于自己 阅读全文
摘要:
题目链接 897. 递增顺序查找树 easy 题目思路 这个题有点像二叉树变单链表,利用中序遍历去进行更改即可。 代码实现 class Solution { TreeNode head; TreeNode pre; public TreeNode increasingBST(TreeNode roo 阅读全文
摘要:
题目链接 129. 求根到叶子节点数字之和 medium 题目分析 这个题要求我们做一个路径上的数字转化为整数,并且求和。那么路径上转化为数字的话我们可以用前序遍历即可,遇到叶子节点就往总和上面加上当前的路径数字。 求和的话有两种方式: 采用全局变量思想进行记录,辅助方法不需要返回值。 使用辅助方法 阅读全文
摘要:
题目链接 845. 数组中的最长山脉 Medium 题目分析 这个题的难度纯粹就是吓唬人的。。这个题的思路有很多,可以先找山峰,然后再向左右扩展。我的想法就是在遍历过程中去维护一个双指针,双指针的距离就是当前山脉的长度。 遍历过程中分以下几种情况 如果A[i] > A[i-1],那么这里可以看做山脉 阅读全文
摘要:
题目链接 763. 划分字母区间 题目分析 这个题的话,第一眼看还没啥思路,忘了10+分钟才有点想法。。 题目总体的话就类似我们维护一个窗口,不断去拓展这个窗口的右边界,直到当前窗口内的所有字符最后一次出现的位置都在右边界内。 但是在维护的时候要注意下面几个点 如果第一次寻找右边界的时候,字符在串中 阅读全文
摘要:
题目链接 925. 长按键入 Easy 题目思路 这个也是个双串匹配的问题,但是是属于较简单的匹配问题。 给定两个字符串,问这两个字符串是否代表同一个内容。 输入typed字符串中可能存在重复输入的键,这个时候我们可以忽略它。 那么我们用双指针去判断即可,其中i代表第一个字符串的浮标,j代表第二个字 阅读全文
摘要:
题目链接 575. 分糖果 思路分析 这个题因为要求女方的糖果获得的种类最多,那么我们可以采用贪心的思想去解题。 因为题目加了另外一个限制条件:我们要对这堆糖果进行均分的策略。那么我们可以先去统计这堆糖果的种类有多少(因为要求女方种类最多)。 但是由于引入均分策略,所以我们可能会出现一个情况: · 阅读全文
摘要:
题目链接 863. 二叉树中所有距离为 K 的结点 题目思想 一开始把这个题当做树的类型来做,结果是毫无思路。只好将树转成图,然后再从target出发,dfs寻找距离等于k的点。 因为树中的数值不是固定的,我们使用HashMap来存放邻接链表(为了省空间)。 利用一个方法,通过前序遍历的思路建立图, 阅读全文