力扣
wy_43431863
这个作者很懒,什么都没留下…
展开
-
力扣130. 被围绕的区域 java
被围绕的区域给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例 1:输入:board = [[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”].原创 2022-02-25 10:43:00 · 217 阅读 · 0 评论 -
力扣257. 二叉树的所有路径 Java 回溯
257. 二叉树的所有路径给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3,null,5]输出:[“1->2->5”,“1->3”]示例 2:输入:root = [1]输出:[“1”]/** * Definition for a binary tree node. * public class TreeNode { * int val; *原创 2022-02-24 10:48:14 · 772 阅读 · 0 评论 -
力扣77. 组合 Java 回溯
组合给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3],[1,4], ]示例 2:输入:n = 1, k = 1 输出:[[1]]class Solution { List<List<Integer>> res=new ArrayList<List&.原创 2022-02-24 09:26:10 · 120 阅读 · 0 评论 -
力扣78. 子集
子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0] 输出:[[],[0]]class Solution { List<List<Integer>> res=new ArrayList&.原创 2022-02-24 09:15:43 · 54 阅读 · 0 评论 -
力扣515. 在每个树行中找最大值 java
力扣题解地址给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。示例1:输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]示例2:输入: root = [1,2,3]输出: [1,3]只需要开个Int型变量,比较一下当前层的节点值那个最大就保存哪个入结果数组/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tre原创 2022-02-22 11:12:24 · 268 阅读 · 0 评论 -
力扣 637. 二叉树的层平均值 Java
力扣题解地址给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。开一个long型变量temp记录每层的结点和,最后如res结果数组时求一下平均数res.add(temp/size);/** * Definition for a bina原创 2022-02-22 10:41:31 · 493 阅读 · 0 评论 -
力扣199. 二叉树的右视图 JAVA
力扣题解地址给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例 1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]示例 2:输入: [1,null,3]输出: [1,3]示例 3:输入: []输出: []**1)**采用使用队列实现层序遍历,使用栈保存每层最后一个节点值先用队列实现层序遍历,将每层元素值入栈,保存每层栈顶元素的栈,再清空栈,这样就能实现保存每层,最后一个节点的值原创 2022-02-22 09:55:06 · 535 阅读 · 0 评论 -
力扣3. 无重复字符的最长子串 Java 滑动窗口
无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是.原创 2022-02-14 11:25:25 · 58 阅读 · 0 评论 -
力扣4. 寻找两个正序数组的中位数 java
寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数2示例2:输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 .原创 2022-02-13 14:15:21 · 170 阅读 · 0 评论 -
力扣51. N 皇后(JAVA)
51. N 皇后力扣题解难度困难1140n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题原创 2022-01-06 09:48:11 · 160 阅读 · 0 评论 -
力扣78. 子集(JAVA)
78. 子集力扣问题难度中等1442给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]解析一个规律:subset([1,2,3]) - subset([1,2])= [3],[1,3],[2原创 2022-01-07 13:12:47 · 404 阅读 · 0 评论 -
力扣22. 括号生成(JAVA)回溯法
1、合法括号生成力扣题解22. 括号生成难度中等2268数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]解析有关括号问题,你只要记住两个个性质,思路就很容易想出来:1、一个「合法」括号组合的左括号数量一定等于右括号数量,这个显而易见。2、对于一个「合法」的括号字符串原创 2022-01-08 14:22:17 · 793 阅读 · 0 评论 -
力扣514. 自由之路
力扣原文力扣题解514. 自由之路难度困难221电子游戏“辐射4”中,任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘,并使用表盘拼写特定关键词才能开门。给定一个字符串 ring,表示刻在外环上的编码;给定另一个字符串 key,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。最初,ring 的第一个字符与12:00方向对齐。您需要顺时针或逆时针旋转 ring 以使 key 的一个字符在 12:00 方向对齐,然后按下中心按钮,以此逐个拼写完原创 2021-12-22 10:08:44 · 161 阅读 · 0 评论 -
力扣64-动态规划解法
给定一个包含非负整数的 *m* x *n* 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。**说明:**每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12解析:我们想计算从起点D到达B的最小路径和,那你说怎么才能到达B呢?题目说了只能向右或者向下走,所以只原创 2021-12-20 10:03:27 · 107 阅读 · 0 评论 -
力扣174
174. 地下城游戏力扣题解:添加链接描述难度困难555一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健原创 2021-12-20 11:29:06 · 93 阅读 · 0 评论 -
力扣1024视频拼接
1、1024. 视频拼接来源力扣解析:1024力扣题解难度中等261你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。使用数组 clips 描述所有的视频片段,其中 clips[i] = [starti, endi] 表示:某个视频片段开始于 starti 并于 endi 结束。甚至可以对这些片段自由地再剪辑:例如,片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段原创 2022-01-04 09:43:20 · 1993 阅读 · 0 评论 -
力扣45跳跃游戏II(难)JAVA
力扣题解给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4]输出: 2原创 2022-01-04 10:26:30 · 2179 阅读 · 0 评论 -
力扣55跳跃游戏I(中等)JAVA
力扣题解55. 跳跃游戏难度中等1563给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长原创 2022-01-04 10:27:52 · 68 阅读 · 0 评论 -
力扣134. 加油站(JAVA)
134. 加油站难度中等807在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入: gas = [1,2,3,4,5]cos原创 2022-01-04 13:41:44 · 181 阅读 · 0 评论 -
力扣416
力扣题解地址:https://leetcode-cn.com/problems/partition-equal-subset-sum/solution/416-fen-ge-deng-he-zi-ji-by-wxy-t-tpdc/416. 分割等和子集难度中等1048给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和原创 2021-12-19 10:46:07 · 180 阅读 · 0 评论 -
力扣518
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。假设每一种面额的硬币有无限个。题目数据保证结果符合 32 位带符号整数。示例 1:输入:amount = 5, coins = [1, 2, 5]输出:4解释:有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入:amount = 3, coins = .原创 2021-12-20 09:36:17 · 56 阅读 · 0 评论 -
力扣2. 两数相加 Java
2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807示例 2:输入:l1 = [0], l2 = [0] 输出:[0]示例 3:输入:l1 = [9,9,9,9原创 2022-02-13 10:09:24 · 136 阅读 · 0 评论 -
力扣1. 两数之和 java
1. 两数之和难度简单13402给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [原创 2022-02-12 13:50:31 · 112 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字力扣题解地址难度简单695找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 解析声明集合,判断加入集合的元素是不是重复元素代码class Solution { public int findRepeat原创 2022-02-12 11:20:51 · 444 阅读 · 0 评论 -
剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈难度简单272定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minSta原创 2022-02-10 11:56:21 · 157 阅读 · 0 评论 -
887. 鸡蛋掉落
力扣地址动态规划+二分查找 首先我们根据dp(K, N)数组的定义(有K个鸡蛋面对N层楼,最少需要扔 dp(K, N) 次),很容易知道K固定时,这个函数随着N的增加一定是单调递增的,无论你策略多聪明,楼层增加的话,测试次数一定要增加。 注意dp(K - 1, i - 1)和dp(K, N - i)这两个函数,其中i是从 1 到N单增的,如果我们固定K和N,把这两个函数看做关于i的函数,前者随着i的增加应该也是单调递增的,而后者随着i的增加应该是单调递减的:求二者的较大值,再求这些最大值之原创 2021-12-24 11:31:53 · 160 阅读 · 0 评论 -
力扣1884. 鸡蛋掉落-两枚鸡蛋
1884. 鸡蛋掉落-两枚鸡蛋难度中等28给你 2 枚相同 的鸡蛋,和一栋从第 1 层到第 n 层共有 n 层楼的建筑。已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都 会碎 ,从 f 楼层或比它低 的楼层落下的鸡蛋都 不会碎 。每次操作,你可以取一枚 没有碎 的鸡蛋并把它从任一楼层 x 扔下(满足 1 <= x <= n)。如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中 重复使用 这枚鸡蛋。请你原创 2021-12-24 10:42:33 · 454 阅读 · 0 评论 -
力扣787. K 站中转内最便宜的航班
有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pricei 抵达 toi。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。 如果不存在这样的路线,则输出 -1。787. K 站中转内最便宜的航班难度中等430有 n 个城市通过一些航班连接原创 2021-12-22 12:41:58 · 398 阅读 · 0 评论 -
力扣207. 课程表
你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai,bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。 请你判断是否可能完成所有课程的学习?如果可以,返回true ;否则,返回 false 。示例 1:输入:num.原创 2021-11-08 11:01:20 · 110 阅读 · 0 评论 -
力扣图的路径遍历之-----797. 所有可能的路径
给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。示例 1:输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]解释:有两条路径 0 -> 1 -> 3 和 0 -> 2 -> 3示例原创 2021-11-05 11:12:26 · 508 阅读 · 0 评论