- 博客(35)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 Leetcode刷题654. 最大二叉树
给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下: 二叉树的根是数组 nums 中的最大元素。 左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。 右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。 返回有给定数组 nums 构建的 最大二叉树 。 示例 1: 输入:nums = [3,2,1,6,0,5] 输出:[6,3,5,null,2,0,null,null,1] 解释:递归调用如下所示: - [3,2,1,6,0,5] 中的
2021-01-25 00:40:41
579
原创 Leetcode刷题117. 填充每个节点的下一个右侧节点指针 II
给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有next 指针都被设置为 NULL。 示例: 输入:root = [1,2,3,4,5,null,7] 输出:[1,#,2,3,#,4,5,7,#] 解释:给定二叉树如图 A 所示,你的函数应该...
2021-01-24 22:45:51
229
原创 Leetcode刷题116. 填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有next 指针都被设置为 NULL。 进阶: 你只能使用常量级额外空间。 使用递归解题也符合要求,本题中递归程序占用的...
2021-01-24 01:08:16
257
原创 Leetcode刷题114. 二叉树展开为链表
给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list 著作权归领扣...
2021-01-23 17:25:41
234
1
原创 Leetcode刷题226. 翻转二叉树
翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 来源:力扣(LeetCode) 链接:https://leetco...
2021-01-23 16:36:15
288
原创 Leetcode刷题590. N叉树的后序遍历
给定一个 N 叉树,返回其节点值的后序遍历。 例如,给定一个3叉树: 返回其后序遍历: [5,6,3,2,4,1]. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public List<Integer> postorder(Node ...
2021-01-22 21:57:44
266
1
原创 Leetcode刷题589. N叉树的前序遍历
给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个3叉树: 返回其前序遍历:[1,3,5,6,2,4]。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public List<Integer> preorder(Node ro...
2021-01-21 23:08:19
229
原创 Leetcode刷题145. 二叉树的后序遍历
给定一个二叉树,返回它的 后序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public List<Intege...
2021-01-21 00:19:14
384
1
原创 Leetcode刷题144. 二叉树的前序遍历
给你二叉树的根节点root,返回它节点值的前序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[1,2] 示例 5: 输入:root = [1,null,2] 输出:[1,2] 来源:力扣(LeetCode) 链接:https://leetcode-cn....
2021-01-20 23:39:08
287
原创 Leetcode刷题94. 二叉树的中序遍历
给定一个二叉树的根节点root,返回它的中序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示例 5: 输入:root = [1,null,2] 输出:[1,2] 来源:力扣(LeetCode) 链接:https://leetcode-cn.c...
2021-01-20 23:21:27
211
原创 Leetcode刷题23. 合并K个升序链表
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。
2021-01-19 23:38:07
340
1
原创 Leecode刷题86. 分隔链表
给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入:head = 1->4->3->2->5->2, x = 3 输出:1->2->2->4->3->5 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/partition-list 著作权归领扣网络所有。商业转.
2021-01-19 21:09:23
140
原创 Leecode刷题剑指 Offer 62. 圆圈中最后剩下的数字
0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n = 5, m = 3 输出:3 示例 2: 输入: n = 10, m = 17 输出:2 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/yu...
2021-01-19 08:03:47
167
原创 Leecode刷题143. 重排链表
给定一个单链表L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 示例 2: 给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3. 来源:力扣(LeetCode) 链接:https:/..
2021-01-18 00:13:56
272
1
原创 Leecode刷题328. 奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2->4->NULL 示例 2: 输入: 2->1->3->5->6->
2021-01-17 22:04:46
173
原创 Leetcode刷题剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums =[1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof 著作权归领扣网络所有。商...
2021-01-17 16:44:30
195
原创 删除有序链表中重复出现的元素
题目描述 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。 例如: 给出的链表为1→2→3→3→4→4→5, 返回1→2→5. 给出的链表为1→1→1→2→3, 返回2→3. 示例1 输入 {1,2,2} 返回值 {1} //快慢指针 //时间复杂度O(N),空间复杂度O(1) public ListNode deleteDuplicates(ListNode head) { if (head == n.
2021-01-17 13:07:11
187
原创 Leetcode刷题83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例1: 输入: 1->1->2 输出: 1->2 示例2: 输入: 1->1->2->3->3 输出: 1->2->3 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class ..
2021-01-17 01:35:36
216
2
原创 两个链表生成相加链表
题目描述 假设链表中每一个节点的值都在 0 - 9之间,那么链表整体就可以代表一个整数。 给定两个这种链表,请生成代表两个整数相加值的结果链表。 例如:链表 1为 9->3->7,链表 2为 6->3,最后生成新的结果链表为 1->0->0->0。 示例1 输入 [9,3,7],[6,3] 返回值 {1,0,0,0} //方法二:使用栈,不需要反转链表 public ListNode addInListII(ListNode head...
2021-01-17 01:02:01
168
原创 Leetcode刷题19. 删除链表的倒数第N个节点
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。
2021-01-16 15:29:03
183
1
原创 Leetcode刷题234. 回文链表
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-linked-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { .
2021-01-14 22:45:44
155
2
原创 Leetcode刷题25. K 个一组翻转链表
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。 k是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当k= 2 时,应当返回: 2->1->4->3->5 当k= 3 时,应当返回: 3->2->1->4->5 来源:力扣(LeetCode) 链接:https://leetcode-...
2021-01-14 21:36:19
206
原创 Leetcode刷题92. 反转链表 II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤m≤n≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-linked-list-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注...
2021-01-11 07:43:33
204
原创 Leetcode刷题148. 排序链表
给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3: 输入:head = [] 输出:[] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/...
2021-01-10 12:42:27
240
原创 Leetcode刷题剑指 Offer 51. 数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。链接:https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。0
2021-01-05 22:07:02
301
2
原创 Leetcode刷题1011. 在 D 天内送达包裹的能力
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。 传送带上的第 i个包裹的重量为weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。 示例 1: 输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5 输出:15 解释: 船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示: 第 1 天:1, 2, 3, 4, 5 第 2 ..
2021-01-03 21:33:09
284
原创 Leetcode刷题875. 爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有N堆香蕉,第 i 堆中有piles[i]根香蕉。警卫已经离开了,将在H小时后回来。 珂珂可以决定她吃香蕉的速度K(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。 返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。 示例 1: 输入: piles = [3,6,7,11], H = 8 ...
2021-01-03 20:33:24
477
原创 Leetcode刷题57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 示例2: 输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] 输出:[[1,2],[3,10],[12,16]]..
2021-01-03 14:12:30
265
原创 Leetcode刷题986. 区间列表的交集
给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序。 返回这两个区间列表的交集。 (形式上,闭区间[a, b](其中a <= b)表示实数x的集合,而a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。) 示例: 输入:A = [[0,2],[5,10],[13,23],[24,25]], B = [[1,5],[8,12],[15,24],[25,2...
2021-01-03 00:42:11
372
原创 Leetcode刷题56. 合并区间
给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例2: 输入: intervals = [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。 来源:力扣(LeetCode) 链接:https://leetcode.
2021-01-03 00:04:59
418
1
原创 Leetcode刷题1288. 删除被覆盖区间
给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。 只有当c <= a且b <= d时,我们才认为区间[a,b) 被区间[c,d) 覆盖。 在完成所有删除操作后,请你返回列表中剩余区间的数目。 示例: 输入:intervals = [[1,4],[3,6],[2,8]] 输出:2 解释:区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove...
2021-01-02 23:37:32
271
原创 Leetcode刷题3. 无重复字符的最长子串
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。商业转载请联系官方授权,非商业转载请注明出处。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。给定一个字符串,请你找出其中不含有重复字符的。输入: s = "abcabcbb"输入: s = "pwwkew"输入: s = "bbbbb"来源:力扣(LeetCode)输入: s = ""
2021-01-02 20:17:30
391
原创 Leetcode刷题438. 找到字符串中所有字母异位词
给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。 说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例1: 输入: s: "cbaebabacd" p: "abc" 输出: [0, 6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的字母异位词。 起始索引等于 6 的子串是 "bac", 它是 "abc...
2021-01-02 19:33:23
328
原创 Leetcode刷题567. 字符串的排列
给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。 换句话说,第一个字符串的排列之一是第二个字符串的子串。 示例1: 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 示例2: 输入: s1= "ab" s2 = "eidboaoo" 输出: False 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutation-...
2021-01-02 17:46:28
390
2
原创 Leetcode刷题76. 最小覆盖子串
给你一个字符串 s 、一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:s = "ADOBECODEBANC", t = "ABC"注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)
2021-01-02 14:25:12
656
4
蚁群算法的实现
2015-04-05
java分治思想求数组最大值最小值
2016-08-30
如何实现Andriod手机能够访问电脑中的MySQL数据???
2016-03-31
C语言十进制转换成二进制(可转换小数)哪里出错了?
2015-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人