- 博客(126)
- 资源 (4)
- 收藏
- 关注
原创 887. 鸡蛋掉落
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong887. 鸡蛋掉落给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层 x 扔下(满足 1 <= x <= n)。如果鸡蛋碎了,你就不能再次使用
2021-08-13 14:26:24
203
原创 64. 最小路径和
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong64. 最小路径和给定一个包含非负整数的 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]]输出:1
2021-08-12 11:13:39
210
原创 55. 跳跃游戏
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong55. 跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4
2021-08-11 13:38:24
227
原创 452. 用最少数量的箭引爆气球
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤
2021-08-10 16:53:34
140
原创 435. 无重叠区间
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong435. 无重叠区间给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [
2021-08-10 16:16:10
99
原创 518. 零钱兑换 II
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong518. 零钱兑换 II给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。假设每一种面额的硬币有无限个。题目数据保证结果符合 32 位带符号整数。示例 1:输入:amount = 5, coins = [1, 2, 5]输出:4解释:有四种方式可以凑成
2021-08-10 14:33:47
88
原创 416. 分割等和子集
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong416. 分割等和子集给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:
2021-08-09 22:04:11
110
原创 354. 俄罗斯套娃信封问题
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong354. 俄罗斯套娃信封问题给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。注意:不允许旋转信封。示例 1:
2021-08-07 11:23:06
118
原创 494. 目标和
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong494. 目标和给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例
2021-07-25 21:22:28
146
原创 509. 斐波那契数
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1
2021-07-22 18:28:06
74
原创 322. 零钱兑换
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong322. 零钱兑换给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输
2021-07-22 18:19:54
64
原创 773. 滑动谜题
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong773. 滑动谜题在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例:输入:boar
2021-07-16 16:48:50
143
原创 752. 打开转盘锁
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong752. 打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一
2021-07-15 18:45:51
131
原创 698. 划分为k个相等的子集
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong698. 划分为k个相等的子集给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。示例 1:输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。提示:1 <= k <= len(nums
2021-07-14 22:20:44
192
原创 22. 括号生成
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8解题方法解题思路1class Solution {
2021-07-14 17:21:25
169
1
原创 37. 解数独
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong37. 解数独编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例:输入:board = [[“5”,“3”,".",".",“7”,".",".","
2021-07-13 16:40:20
89
原创 77. 组合
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong77. 组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]解题方法解题思路1...
2021-07-13 16:38:16
62
原创 78. 子集
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong78. 子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= n
2021-07-10 11:54:20
74
原创 18. 四数之和
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong18. 四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例 1:输入:nums = [1,0,-1,0,-2,2], target = 0输出:[[-2,-1,1,
2021-07-06 18:10:39
93
原创 410. 分割数组的最大值
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong410. 分割数组的最大值给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。示例 1:输入:nums = [7,2,5,10,8], m = 2输出:18解释:一共有四种方法将 nums 分割为 2 个子数组。 其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。因为此时
2021-07-05 15:40:48
176
原创 232. 用栈实现队列
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 f
2021-07-03 21:37:45
180
2
原创 239. 滑动窗口最大值
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong239. 滑动窗口最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值
2021-07-01 16:51:31
91
原创 503. 下一个更大元素 II
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong503. 下一个更大元素 II给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2
2021-06-30 15:58:15
63
原创 739. 每日温度
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong739. 每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1
2021-06-30 12:38:10
62
原创 496. 下一个更大元素 I
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong496. 下一个更大元素 I给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,
2021-06-30 12:08:44
155
3
原创 355. 设计推特
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong355. 设计推特设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能:postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推文。每个推文都必须是由此用户关注的人或者是用户自己发出的。推文必须按照时间顺序由
2021-06-29 23:20:50
168
2
原创 295. 数据流的中位数
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong295. 数据流的中位数中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。
2021-06-28 17:55:23
88
原创 398. 随机数索引
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong398. 随机数索引给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例:int[] nums = new int[] {1,2,3,3,3};Solution solution = new Solution(nums);// pick(3) 应该返回索
2021-06-28 16:12:39
65
原创 382. 链表随机节点
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong382. 链表随机节点给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 [1,2,3].ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.n
2021-06-28 15:49:16
75
原创 460. LFU 缓存
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong460. LFU 缓存请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。实现 LFUCache 类:LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键存在于缓存中,则获取键的值,否则返回 -1。void put(int key, int value) - 如果键已存在,则变更其值;如果键
2021-06-25 23:09:53
68
原创 895. 最大频率栈
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong895. 最大频率栈实现 FreqStack,模拟类似栈的数据结构的操作的一个类。FreqStack 有两个函数:push(int x),将整数 x 推入栈中。pop(),它移除并返回栈中出现最频繁的元素。如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素。示例:输入:[“FreqStack”,“push”,“push”,“push”,“push”,“push”,“push
2021-06-25 23:06:53
115
原创 146. LRU 缓存机制
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong146. LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int v
2021-06-17 15:28:43
66
1
原创 130. 被围绕的区域
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong130. 被围绕的区域给你一个 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”,“
2021-06-16 11:04:55
119
原创 222. 完全二叉树的节点个数
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong222. 完全二叉树的节点个数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例 1:输入:root = [1,2,3,4,5,6]输出:6示例 2:输入:roo
2021-06-10 17:35:06
79
原创 二叉树的最近公共祖先
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong236. 二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q =
2021-06-09 18:18:57
102
原创 341. 扁平化嵌套列表迭代器
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong341. 扁平化嵌套列表迭代器给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例 1:输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是:
2021-06-09 16:05:39
74
原创 1373. 二叉搜索子树的最大键值和
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong1373. 二叉搜索子树的最大键值和给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。二叉搜索树的定义如下:任意节点的左子树中的键值都 小于 此节点的键值。任意节点的右子树中的键值都 大于 此节点的键值。任意节点的左子树和右子树都是二叉搜索树。示例 1:输入:root = [1,4,3,2,4,2,5,null,null,null,null,nu
2021-06-08 15:35:36
319
原创 797. 所有可能的路径
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong797. 所有可能的路径给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点(译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a )空就是没有下一个结点了。示例 1:输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2
2021-06-08 10:18:05
115
原创 51. N 皇后
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong51. N 皇后n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“
2021-06-07 19:40:04
60
原创 46. 全排列
算法题(程序员面试宝典)解题思路主要来源于leetcode官方与《程序员面试宝典》&labuladong46. 全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[
2021-06-06 12:32:58
83
torchvision-0.6.0+cpu-cp35-cp35m-win_amd64.whl
2020-05-27
torch-1.5.0+cpu-cp35-cp35m-win_amd64.whl
2020-05-27
torchvision-0.6.0+cpu-cp38-cp38-win_amd64.whl
2020-05-27
torch-1.5.0+cpu-cp38-cp38-win_amd64.whl
2020-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人