![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
某个不会写代码的小傻逼。
这个作者很懒,什么都没留下…
展开
-
Believing Process 力扣503. 下一个更大元素 II
题干:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。public class 下一个更大元素2 {..原创 2021-08-16 15:59:13 · 102 阅读 · 0 评论 -
Believing Process 739. 每日温度
题干:请根据每日气温列表temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0来代替。示例:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]public class 每日温度 { public static void main(String[] args) { int[] temperatures = {30,...原创 2021-08-12 16:16:52 · 90 阅读 · 0 评论 -
Believing Process 力扣109. 有序链表转换二叉搜索树
题干:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / /-10 5class Solution { publ...原创 2021-08-10 15:30:28 · 119 阅读 · 0 评论 -
Believing Process 力扣236.二叉树的最近公共祖先
题干:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。class Solution { ...原创 2021-08-09 15:33:04 · 76 阅读 · 0 评论 -
Believing Process 力扣637.二叉树的层平均值
题干:给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。class Solution { public List<Double> averageOfLevels(TreeNode root) { ...原创 2021-08-06 15:54:29 · 80 阅读 · 0 评论 -
Believing Process 力扣671.二叉树中第二小的节点
题干:给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为2或0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例:输入:root = [2,2,5,null,null,5,7]输出:5解释:最小的值是 2 ,第二小的值...原创 2021-08-05 17:15:21 · 81 阅读 · 0 评论 -
Believing Process 力扣337.打家劫舍3
题干:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例:输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \...原创 2021-08-05 16:18:53 · 123 阅读 · 0 评论 -
Believing Process 力扣687. 最长同值路径
题干:给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:两个节点之间的路径长度由它们之间的边数表示。示例:输入: 5 / \ 4 5 / \ \ 1 1 5输出:2class Solution { private int count = 0; public int ...原创 2021-08-03 17:21:12 · 94 阅读 · 0 评论 -
Believing Process 力扣101.对称二叉树
题干:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3class Solution { public boolean isSymmetric(TreeNode root) { if(root==null) return true; return isEQ(root.left,root.right); ...原创 2021-08-02 17:25:05 · 99 阅读 · 0 评论 -
Believing Process 力扣328.奇偶链表
题干:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULLpublic class 奇偶链表 { public s.原创 2021-08-02 16:19:43 · 98 阅读 · 0 评论 -
Believing Process 力扣725.分隔链表
题干:给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例: 1->2->3->4, k = 5 // 5 结果 [ [1], [2], [3], [4], null ]示例:输入:root =..原创 2021-08-02 15:37:35 · 142 阅读 · 0 评论 -
Believing Process 力扣112.路径总和
题干:给你二叉树的根节点root和一个表示目标和的整数targetSum,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和targetSum。叶子节点是指没有子节点的节点。示例:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:trueclass Solution { public boolean hasPathSum(TreeNo...原创 2021-08-01 17:02:40 · 108 阅读 · 0 评论 -
Believing Process 力扣543.二叉树的直径
题干:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。class Solution { private int max = 0; public int d...原创 2021-08-01 16:16:41 · 72 阅读 · 0 评论 -
Believing Process 力扣19.删除链表的倒数第N个结点
题干:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]public class 删除链表的倒数第N个节点 { public static void main(String[] args) { int[] nums = {1}; int n = 1; ListNode head = cr...原创 2021-07-29 16:27:04 · 104 阅读 · 0 评论 -
Believing Process 力扣21.合并两个有序链表
题干:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]public class 合并两个有序链表 { public static void main(String[] args) { int[] l1 = {1,2,4}; int[] l2 = {1,3,4}; ListNode l...原创 2021-07-28 17:17:06 · 111 阅读 · 0 评论 -
Believing Process 力扣206.反转链表
题干:给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]public class 反转链表 { public static void main(String[] args) { int[] value ={1,2,3,4,5}; ListNode head = new ListNode(); ListNode point = head;...原创 2021-07-28 16:26:30 · 112 阅读 · 0 评论 -
Believing Process 力扣241.为运算表达式设计优先级
题干:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +,-以及*。示例:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2public class 为运算表达式设计优先级 { public static void main(String[] args) { String expression = "2...原创 2021-07-28 15:45:54 · 77 阅读 · 0 评论 -
Believing Process 力扣153.寻找旋转排序数组中的最小值
题干:给你一个元素值互不相同的数组nums,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的最小元素。注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]] 。示例:输入:nums = [3,4,5,1,2]输出:1解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。public class 寻找...原创 2021-07-27 16:39:04 · 68 阅读 · 0 评论 -
Believing Process 力扣540.有序数组中的单一元素
题干:给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2输入: nums = [3,3,7,7,10,11,11]输出: 10public class 有序数组中的单一元素 { public static void main(String[] args) { int[] nums = {1,1,2,3,3,4,4,8,8}; .原创 2021-07-27 15:24:26 · 131 阅读 · 0 评论 -
Believing Process 力扣763.划分字母区间
题干:字符串S由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。public clas...原创 2021-07-26 16:10:51 · 112 阅读 · 0 评论 -
Believing Process 力扣605.种花问题
题干:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数n ,能否在不打破种植规则的情况下种入n朵花?能则返回 true ,不能则返回 false。示例:输入:flowerbed = [1,0,0,0,1], n = 1输出:truepublic class 种花问题 {...原创 2021-07-22 16:02:11 · 102 阅读 · 0 评论 -
Believing Process 力扣452.用最少数量的箭引爆气球
给你一个数组points,其中points [i] = [xstart,xend],返回引爆所有气球所必须射出的最小弓箭数。public class 用最少数量的箭引爆气球_贪心 { public static void main(String[] args) { int[][] points = {{10,16},{2,8},{1,6},{7,12}}; System.out.println(findMinArrowShots(points));...原创 2021-07-20 15:55:58 · 104 阅读 · 0 评论 -
Believing Process 力扣53.最大子序和
题干:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。public class 最大子序和 { public static void main(String[] args) { int[] nums = {-2,1,-3,4,-1,2,1,-5,4}; ...原创 2021-07-23 17:13:41 · 88 阅读 · 0 评论 -
Believing Process 力扣665.非递减数列
题干:给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中任意的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。public class 非递减数列 { public static void ...原创 2021-07-23 16:10:51 · 121 阅读 · 0 评论 -
Believing Process 力扣406.根据身高重建队列
假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。public class 根据身高重建队列 { ..原创 2021-07-20 17:34:16 · 125 阅读 · 0 评论 -
Believing Process 力扣435.无重叠区间
题干:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。public class 无重叠区间 { public static void main(String[] args) { int[][] intervals = {{1,100},{11,22},{1,11},{2,12}}; System.out.print.原创 2021-07-19 16:53:05 · 173 阅读 · 0 评论 -
Believing Process 力扣347.前K个高频元素
题干:给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。public class 前K个高频元素 { public static void main(String[] args) { int[] nums = {1}; int k = 1; int[] rs = topKFrequent(nums,k); for(Integer integer:rs) ...原创 2021-07-18 10:29:45 · 98 阅读 · 0 评论 -
Believing Process 力扣451. 根据字符出现频率排序
题干:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。public class 根据字符出现频率排序 { public static void main(String[] args) { String s = "Aabb"; System.out.println(frequencySort(s)); } public static String frequencySort(String s) { StringBu.原创 2021-07-18 15:23:06 · 120 阅读 · 0 评论 -
Believing Process 力扣524. 通过删除字母匹配到字典里最长单词
题干:给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。public class 通过删除字母匹配到字典里最长单词 { public static void main(String[] args) { String s = "abpcplea"; List<String.原创 2021-07-16 10:24:35 · 119 阅读 · 0 评论