LeetCode 热题 HOT 100 随机开始
每天随机刷点
goldfish_well
这个作者很懒,什么都没留下…
展开
-
LeetCode 热题 HOT 100Java题解之739. 每日温度(击败了82.37%的用户)
题目:请根据每日气温列表temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0来代替。示例:输入: temperatures= [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]思路:可能是真题刷的够了,看到就觉得该用栈,虽然没有想清楚具体实现,但是栈肯定要用。要维护一个栈底到栈顶温度递减的单调栈要注意往栈里面放的是坐标复杂度...原创 2022-01-23 16:06:01 · 2519 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之647. 回文子串(击败了87.68%的用户)
题目:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例:输入:s = "abc"输出:3解释:三个回文子串: "a", "b", "c"思路://中心扩散法,把每个点都当成中心往两边扩散但是要注意两个字符作为中心的情况 比如abba原创 2022-01-23 15:24:44 · 3066 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之581. 最短无序连续子数组(击败了99.95%的用户)
题目:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短子数组,并输出它的长度。示例:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。思路:思路很简单,从前往后到不是递增的数得到坐标从后往前到以一个不是递减的数得到坐标再相减复杂度:时间原创 2022-01-23 14:53:43 · 3722 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之560. 和为 K 的子数组(击败了77.92%的用户)
题目:给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数。示例:输入:nums = [1,1,1], k = 2输出:2思路:刚想到就是滑动数组,这题跟之前有一题滑动数组的挺像的主要是有连续子数组这个条件因为nums[i]可以小于0,也就是说右指针i向后移1位不能保证区间会增大,左指针j向后移1位也不能保证区间和会减小。给定j,i的位置没有二段性,处理不了负值使用前缀和是正解复杂度.原创 2022-01-23 14:29:39 · 3917 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之543. 二叉树的直径(击败了100%的用户)
题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例: 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。思路:直径就是可以说是最长路径吧,不一定要经过根结点利用递归去做,老生常谈了复杂...原创 2022-01-23 11:24:48 · 2857 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之538. 把二叉搜索树转换为累加树(击败了100%的用户)
题目:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:原创 2022-01-23 10:28:04 · 72 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之494. 目标和(击败了9.25%的用户)
题目:给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加'+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方..原创 2022-01-22 17:49:29 · 70 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之461. 汉明距离(击败了100%的用户)
题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。示例:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。思路:先异或运算符得到所有不同的位数,也就是num = x^y,再计算二进制符中1的数量就可以了之前写的的 x = x&x-1;...原创 2022-01-22 16:22:31 · 89 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之448. 找到所有数组中消失的数字(击败了28.09%的用户)
题目:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]思路:思路是两遍遍历,第一遍排序,将值放到对应的位置若有重复就跳过。再遍历一次某个值不对就加入。思路很简单但是效率不太行。复杂度:时间复杂度:遍历两遍O(n).原创 2022-01-22 16:04:31 · 188 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之438. 找到字符串中所有字母异位词(击败了65.65%的用户)
题目:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。示例:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。思路:思路很简单,肯定是滑动窗原创 2022-01-22 15:32:02 · 258 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之234. 回文链表(击败了99.92%的用户)
题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例:输入:head = [1,2,2,1]输出:true思路:快慢指针,快走两步,慢走一步。走的时候就反转前面的链表快指针到终点慢在中间 ,然后slow继续往后走,和之前反转的链表对比,就可以了。还是那句话,要熟悉数据结构复杂度:时间复杂度:遍历O(n)空间复杂度:O(1)...原创 2022-01-13 11:47:22 · 169 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之215. 数组中的第K个最大元素(击败了82.8%的用户)
题目:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例:输入: [3,2,1,5,6,4] 和 k = 2输出: 5思路:先排序,然后返回倒数的数就行了,是我哪里没理解吗,很简单啊直接ac了,没搞懂,是不能调用API的sort方法嘛 复杂度:时间复杂度:遍历O(n)空间复杂度:O(1)...原创 2022-01-13 10:37:30 · 104 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之208. 实现 Trie (前缀树)(击败了82.38%的用户)
题目:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean sta原创 2022-01-13 10:12:16 · 79 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之207. 课程表(击败了96.09%的用户)
题目:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对[0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。..原创 2022-01-12 11:14:48 · 114 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之206. 反转链表(击败了100%的用户)
题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]思路:链表倒转,简单题,但是一定要搞明白链表这个数据结构我们新建一个空链表res,然后让结果指向它 最后返回还需要一个辅助链表cur复杂度:时间复杂度:遍历O(n)空间复杂度:O(1)代码:public ListNode reverseList(Lis..原创 2022-01-11 11:20:04 · 274 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之200. 岛屿数量(击败了81.54%的用户)
题目:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1思路...原创 2022-01-11 10:44:54 · 173 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之198. 打家劫舍(击败了100%的用户)
题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。...原创 2022-01-11 10:13:21 · 58 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之160. 相交链表(击败了99.98%的用户)
题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。示例:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3输出:Intersected at '8'解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8原创 2022-01-11 09:39:14 · 256 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之155. 最小栈(击败了99.17%的用户)
题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,nul..原创 2022-01-10 10:54:35 · 182 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之152. 乘积最大子数组(击败了78.95%的用户)
题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。思路:动态规划。这题的问题在于dp数组的确定和递推公式怎么写的问题因为会有正负值因此我们建立两个dp【】数组来存最大和最小值最大dp[ i ] = max(nums[ i ],max( dp[i-1]*nums[ i ]),最小dp[i-1原创 2022-01-10 10:20:42 · 136 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之148. 排序链表(击败了98.94%的用户)
题目:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例:输入:head = [4,2,1,3]输出:[1,2,3,4]思路:我的想法很简单,先将链表转成数组排序完再转成链表复杂度:时间复杂度:遍历O(n)空间复杂度:O(1)代码:...原创 2022-01-10 09:40:54 · 236 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之146. LRU 缓存(击败了97.94%的用户)
题目:请你设计并实现一个满足LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字key 已经存在,则变更其数据值value ;如果不存在,则向缓存中插入该组key-value 。如果插入...原创 2022-01-09 11:18:14 · 303 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之141. 环形链表(击败了100%的用户)
题目:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例:输入:head = [3,2,0,-.原创 2022-01-08 11:22:06 · 80 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之139. 单词拆分(击败了100%的用户)
题目:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。思路:这里采用动规去做dp【i】表示的.原创 2022-01-08 11:00:52 · 986 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之136. 只出现一次的数字(击败了100%的用户)
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例:输入: [2,2,1]输出: 1思路:这道题之前写过了,使用位运算符就可以了如果不熟悉位运算符可以去复习一下这里用到的是 异或^二进制位上相同则为0,不同为1两个相同的数二进制当然相同 所以a^a = 0;0^b=b;由此此道题目就...原创 2022-01-07 11:35:10 · 587 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之128. 最长连续序列(击败了95.11%的用户)
题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n) 的算法解决此问题。示例:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。思路:思路非常简单,先调用排序方法将数组排序再进行遍历,后一个数比前一个数大1,长度就加一断了这个数列之后再重新开始计数但是会碰到比较多的意外情况再..原创 2022-01-07 11:17:20 · 107 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之124. 二叉树中的最大路径和(击败了100%的用户)
题目:路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6思路:对于最大路径和 无非三种情况..原创 2022-01-07 10:34:31 · 65 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之121. 买卖股票的最好时机(击败了100%的用户)
题目:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 ...原创 2022-01-07 09:48:42 · 73 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之96. 不同的二叉搜索树(击败了100%的用户)
题目:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。示例:输入:n = 3输出:5思路:想着肯定是动态规划,点进题解还是给我看麻了从1到n的二叉排序树G( n ) = f( 1 )+f( 2 )+....+f( n )f(n)表示n为根节点的数个数而当 i 为根节点时,左子树节点i-1个,右子树 节点 n-i个f( i ) = G( i-1) * G(n.原创 2022-01-06 10:49:00 · 1210 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之85. 最大矩形(击败了89.23%的用户)
题目:给定一个仅包含0和1、大小为rows x cols的二维二进制矩阵,找出只包含1的最大矩形,并返回其面积。示例:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。思路:最近题目真是越来越难了啊,不看题解都写不动题这道...原创 2022-01-06 10:18:01 · 783 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之84. 柱状图中最大的矩形(击败了76.55%的用户)
题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10思路:最容易想到肯定是暴力法,以每个柱子的高为高向左右延申,碰到比自己低的就停止复杂度肯定是O(n^2) 往上了思考有什么办法可以遍历一次就可以完成计算节省时间,一般都会想到以空间换时间我们原创 2022-01-05 10:55:28 · 869 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之76. 最小覆盖子串(击败了78.88%的用户)
题目:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。示例:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"思路:这题看到就有点麻了,看到题解是用的滑动窗口,确实应该用滑动窗口复杂度:时间复杂度:O(n)空间复杂度:O(1)代码:...原创 2022-01-05 09:50:16 · 73 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之75. 颜色分类(击败了100%的用户)
题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]思路:这道题看上去就是简单的排序问题,有什么幺蛾子吗?遍历O(n)肯定是有的,我在用两个指针来记录0的右端点和2的左端点也就是1的起点和终点遍历过程中,碰到0就放到起点.原创 2022-01-04 11:17:42 · 77 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之79. 单词搜索(击败了55.21%的用户)
题目:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"输出:原创 2022-01-04 10:10:59 · 304 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之72. 编辑距离(击败了82.44%的用户)
题目:给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')思路:刚拿到题目原创 2022-01-03 12:25:47 · 230 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之70. 爬楼梯(击败了100%的用户)
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶思路:斐波那契数列,也没啥好说的动态规划解决问题你走到n位置的方法有f(n)种,这f( n)前一步要么是跨一级上来要么是跨两级上来也就是f( n ) = f( n-1 ) + f( n-2 );就很.原创 2022-01-03 10:30:38 · 229 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之64. 最小路径和(击败了96.58%的用户)
题目:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。思路:也没啥好说的,还是动规,还是老套路。直接做就行了复杂度:时间复杂度:遍历O(mn)空间复杂度:dp数组O(mn)代码:..原创 2022-01-02 11:36:35 · 235 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之62. 不同路径(击败了100%的用户)
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例:输入:m = 3, n = 7输出:28思路:这种题不用想了,闭着眼睛上动态规划就完了空间是可以优化的,这样比较好理解复杂度:时间复杂度:遍历O(mn)空间复杂度:dp数组O(mn).原创 2022-01-02 11:14:10 · 794 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之56. 合并区间(击败了48.89%的用户)
题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].思路:就是排序后按照原创 2022-01-02 10:25:43 · 73 阅读 · 0 评论 -
LeetCode 热题 HOT 100Java题解之49. 字母异位词分组(击败了95.01%的用户)
题目:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。思路:要先理解题意你刚开始处于的位置是nums[ 0 ],然后你能跳的这个距离小于或者等于当前数。跳到的下一个位置也是如此,看是否可以跳原创 2022-01-02 09:45:44 · 337 阅读 · 0 评论