自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 381 O(1) 时间插入、删除和获取随机元素 - 允许重复

题目描述:设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。示例:// 初始化一个空的集合。RandomizedCollection collection = new RandomizedCollection();// 向

2020-10-31 22:51:49 126

原创 1630 等差子数组

题目描述:如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是 等差数列 。更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i , s[i+1] - s[i] == s[1] - s[0] 都成立。例如,下面这些都是 等差数列 :1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9下面的数列 不是等差数列 :1, 1, 2, 5, 7给你一个由 n 个整数组成的数组 nums,和两个由 m 个整数组成的数组 l 和 r,后两个数组

2020-10-31 15:46:18 183

原创 1629 按键持续时间最长的键

题目描述:LeetCode 设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n 个),每次一个。给你一个长度为 n 的字符串 keysPressed ,其中 keysPressed[i] 表示测试序列中第 i 个被按下的键。releaseTimes 是一个升序排列的列表,其中 releaseTimes[i] 表示松开第 i 个键的时间。字符串和数组的 下标都从 0 开始 。第 0 个键在时间为 0 时被按下,接下来每个键都 恰好 在前一个键松开时被按下。测试人员想要找出按键 持续

2020-10-31 15:41:34 230

原创 140 单词拆分 II

题目描述:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]输出:[“cats and dog”,“cat sand dog”]示例 2:输入:s = “

2020-10-30 20:48:13 140

原创 149 直线上最多的点数

题目描述:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:0 1 2 3 4 5 6方法1:主要思路:(1)每条直线的表示方式可以使用点斜式表述,则可以以每个点作为基准,找出所有的过该点的直线,并统计出这些直线中点的数量最多是多少;(2)

2020-10-30 18:15:12 162

原创 1061 按字典序排列最小的等效字符串

题目描述:给出长度相同的两个字符串:A 和 B,其中 A[i] 和 B[i] 是一组等价字符。举个例子,如果 A = “abc” 且 B = “cde”,那么就有 ‘a’ == ‘c’, ‘b’ == ‘d’, ‘c’ == ‘e’。等价字符遵循任何等价关系的一般规则:自反性:‘a’ == ‘a’对称性:‘a’ == ‘b’ 则必定有 ‘b’ == ‘a’传递性:‘a’ == ‘b’ 且 ‘b’ == ‘c’ 就表明 ‘a’ == ‘c’例如,A 和 B 的等价信息和之前的例子一样,那么 S =

2020-10-25 21:49:33 224

原创 1058 最小化舍入误差以满足目标

题目描述:给定一系列价格 [p1,p2…,pn] 和一个目标 target,将每个价格 pi 舍入为 Roundi(pi) 以使得舍入数组 [Round1(p1),Round2(p2)…,Roundn(pn)] 之和达到给定的目标值 target。每次舍入操作 Roundi(pi) 可以是向下舍 Floor(pi) 也可以是向上入 Ceil(pi)。如果舍入数组之和无论如何都无法达到目标值 target,就返回 -1。否则,以保留到小数点后三位的字符串格式返回最小的舍入误差,其定义为 Σ |Roundi

2020-10-23 21:49:18 317

原创 1059 从始点到终点的所有路径

题目描述:给定有向图的边 edges,以及该图的始点 source 和目标终点 destination,确定从始点 source 出发的所有路径是否最终结束于目标终点 destination,即:从始点 source 到目标终点 destination 存在至少一条路径如果存在从始点 source 到没有出边的节点的路径,则该节点就是路径终点。从始点source到目标终点 destination 可能路径数是有限数字当从始点 source 出发的所有路径都可以到达目标终点 destination

2020-10-22 11:10:13 1264

原创 1057 校园自行车分配

题目描述:在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m。所有工人和自行车的位置都用网格上的 2D 坐标表示。我们需要为每位工人分配一辆自行车。在所有可用的自行车和工人中,我们选取彼此之间曼哈顿距离最短的工人自行车对 (worker, bike) ,并将其中的自行车分配給工人。如果有多个 (worker, bike) 对之间的曼哈顿距离相同,那么我们选择工人索引最小的那对。类似地,如果有多种不同的分配方法,则选择自行车索引最小的一对。不断重复

2020-10-21 10:20:38 365

原创 723 粉碎糖果

题目描述:这个问题是实现一个简单的消除算法。给定一个二维整数数组 board 代表糖果所在的方格,不同的正整数 board[i][j] 代表不同种类的糖果,如果 board[i][j] = 0 代表 (i, j) 这个位置是空的。给定的方格是玩家移动后的游戏状态,现在需要你根据以下规则粉碎糖果,使得整个方格处于稳定状态并最终输出。如果有三个及以上水平或者垂直相连的同种糖果,同一时间将它们粉碎,即将这些位置变成空的。在同时粉碎掉这些糖果之后,如果有一个空的位置上方还有糖果,那么上方的糖果就会下落直到碰

2020-10-21 10:13:08 237

原创 1060 有序数组中的缺失元素

题目描述:给出一个有序数组 A,数组中的每个数字都是 独一无二的,找出从数组最左边开始的第 K 个缺失数字。示例 1:输入:A = [4,7,9,10], K = 1输出:5解释:第一个缺失数字为 5 。示例 2:输入:A = [4,7,9,10], K = 3输出:8解释:缺失数字有 [5,6,8,…],因此第三个缺失数字为 8 。示例 3:输入:A = [1,2,4], K = 3输出:6解释:缺失数字有 [3,5,6,7,…],因此第三个缺失数字为 6 。提示:1

2020-10-15 19:52:45 836

原创 1062 最长重复子串

题目描述:给定字符串 S,找出最长重复子串的长度。如果不存在重复子串就返回 0。示例 1:输入:“abcd”输出:0解释:没有重复子串。示例 2:输入:“abbaba”输出:2解释:最长的重复子串为 “ab” 和 “ba”,每个出现 2 次。示例 3:输入:“aabcaabdaab”输出:3解释:最长的重复子串为 “aab”,出现 3 次。示例 4:输入:“aaaaa”输出:4解释:最长的重复子串为 “aaaa”,出现 2 次。提示:字符串 S 仅包含从 ‘a’ 到 ‘

2020-10-15 17:30:28 374

原创 755 倒水

题目描述:给出一个地形高度图, heights[i] 表示该索引处的高度。每个索引的宽度为 1。在 V 个单位的水落在索引 K 处以后,每个索引位置有多少水?水最先会在索引 K 处下降并且落在该索引位置的最高地形或水面之上。然后按如下方式流动:如果液滴最终可以通过向左流动而下降,则向左流动。否则,如果液滴最终可以通过向右流动而下降,则向右流动。否则,在当前的位置上升。这里,“最终下降” 的意思是液滴如果按此方向移动的话,最终可以下降到一个较低的水平。而且,“水平”的意思是当前列的地形的高度加上水

2020-10-15 15:06:51 168

原创 776 拆分二叉搜索树

题目描述:给你一棵二叉搜索树(BST)、它的根结点 root 以及目标值 V。请将该树按要求拆分为两个子树:其中一个子树结点的值都必须小于等于给定的目标值 V;另一个子树结点的值都必须大于目标值 V;树中并非一定要存在值为 V 的结点。除此之外,树中大部分结构都需要保留,也就是说原始树中父节点 P 的任意子节点 C,假如拆分后它们仍在同一个子树中,那么结点 P 应仍为 C 的子结点。你需要返回拆分后两个子树的根结点 TreeNode,顺序随意。示例:输入:root = [4,2,6,1,3,5,

2020-10-15 09:55:38 617

原创 1055 形成字符串的最短路径

题目描述:对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的子序列。给定源字符串 source 和目标字符串 target,找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回 -1。示例 1:输入:source = “abc”, target = “abcbc”输出:2解释:目标字符串 “abcbc” 可以由 “abc” 和 “bc” 形成,它们都是源字符串 “abc” 的子序列。示例 2:输入:so

2020-10-14 23:07:27 775

原创 750 角矩形的数量

题目描述:给定一个只包含 0 和 1 的网格,找出其中角矩形的数量。一个「角矩形」是由四个不同的在网格上的 1 形成的轴对称的矩形。注意只有角的位置才需要为 1。并且,4 个 1 需要是不同的。示例 1:输入:grid =[[1, 0, 0, 1, 0],[0, 0, 1, 0, 1],[0, 0, 0, 1, 0],[1, 0, 1, 0, 1]]输出:1解释:只有一个角矩形,角的位置为 grid[1][2], grid[1][4], grid[3][2], grid[3][4]。示

2020-10-14 22:29:11 322

原创 737 句子相似性 II

题目描述:给定两个句子 words1, words2 (每个用字符串数组表示),和一个相似单词对的列表 pairs ,判断是否两个句子是相似的。例如,当相似单词对是 pairs = [[“great”, “fine”], [“acting”,“drama”], [“skills”,“talent”]]的时候,words1 = [“great”, “acting”, “skills”] 和 words2 = [“fine”, “drama”, “talent”] 是相似的。注意相似关系是 具有 传递性的

2020-10-14 21:47:05 686

原创 742 二叉树最近的叶节点

题目描述:给定一个 每个结点的值互不相同 的二叉树,和一个目标值 k,找出树中与目标值 k 最近的叶结点。这里,与叶结点 最近 表示在二叉树中到达该叶节点需要行进的边数与到达其它叶结点相比最少。而且,当一个结点没有孩子结点时称其为叶结点。在下面的例子中,输入的树以逐行的平铺形式表示。实际上的有根树 root 将以TreeNode对象的形式给出。示例 1:输入:root = [1, 3, 2], k = 1二叉树图示:输出: 2 (或 3)解释: 2 和 3 都是距离目标 1 最近的叶节点

2020-10-13 10:30:18 871

原创 702 搜索长度未知的有序数组

题目描述:给定一个升序整数数组,写一个函数搜索 nums 中数字 target。如果 target 存在,返回它的下标,否则返回 -1。注意,这个数组的大小是未知的。你只可以通过 ArrayReader 接口访问这个数组,ArrayReader.get(k) 返回数组中第 k 个元素(下标从 0 开始)。你可以认为数组中所有的整数都小于 10000。如果你访问数组越界,ArrayReader.get 会返回 2147483647。样例 1:输入: array = [-1,0,3,5,9,12], t

2020-10-13 10:22:05 401

原创 681 最近时刻

题目描述:给定一个形如 “HH:MM” 表示的时刻,利用当前出现过的数字构造下一个距离当前时间最近的时刻。每个出现数字都可以被无限次使用。你可以认为给定的字符串一定是合法的。例如,“01:34” 和 “12:09” 是合法的,“1:34” 和 “12:9” 是不合法的。样例 1:输入: “19:34”输出: “19:39”解释: 利用数字 1, 9, 3, 4 构造出来的最近时刻是 19:39,是 5 分钟之后。结果不是 19:33 因为这个时刻是 23 小时 59 分钟之后。样例 2:输入

2020-10-12 20:18:14 2589

原创 708 循环有序列表的插入

题目描述:给定循环升序列表中的一个点,写一个函数向这个列表中插入一个新元素,使这个列表仍然是循环升序的。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。如果有多个满足条件的插入位置,你可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。如果列表为空(给定的节点是 null),你需要创建一个循环有序列表并返回这个点。否则。请返回原先给定的节点。下面的例子可以帮你更好的理解这个问题:在上图中,有一个包含三个元素的循环有序列表,你获得值为 3 的节点的指针,我们需

2020-10-12 14:51:02 376 1

原创 694 不同岛屿的数量

题目描述:给定一个非空 01 二维数组表示的网格,一个岛屿由四连通(上、下、左、右四个方向)的 1 组成,你可以认为网格的四周被海水包围。请你计算这个网格中共有多少个形状不同的岛屿。两个岛屿被认为是相同的,当且仅当一个岛屿可以通过平移变换(不可以旋转、翻转)和另一个岛屿重合。示例 1:11000110000001100011给定上图,返回结果 1 。示例 2:11011100000000111011给定上图,返回结果 3 。注意:111和111是不同的岛屿,因为我们

2020-10-11 22:52:18 618

原创 666 路径和 IV

题目描述:对于一棵深度小于 5 的树,可以用一组三位十进制整数来表示。对于每个整数:百位上的数字表示这个节点的深度 D,1 <= D <= 4。十位上的数字表示这个节点在当前层所在的位置 P, 1 <= P <= 8。位置编号与一棵满二叉树的位置编号相同。个位上的数字表示这个节点的权值 V,0 <= V <= 9。给定一个包含三位整数的升序数组,表示一棵深度小于 5 的二叉树,请你返回从根到所有叶子结点的路径之和。样例 1:输入: [113, 215, 2

2020-10-10 10:17:54 528

原创 663 均匀树划分

题目描述:给定一棵有 n 个结点的二叉树,你的任务是检查是否可以通过去掉树上的一条边将树分成两棵,且这两棵树结点之和相等。样例 1:输入:输出: True解释:和: 15和: 15样例 2:输入:输出: False解释: 无法通过移除一条树边将这棵树划分成结点之和相等的两棵子树。注释 :树上结点的权值范围 [-100000, 100000]。1 <= n <= 10000方法1:主要思路:(1)先计算出各个结点作为根节点的时,对应的子树的和,并统计出原来

2020-10-10 09:48:11 1937

原创 651 4键键盘

题目描述:假设你有一个特殊的键盘包含下面的按键:Key 1: (A):在屏幕上打印一个 ‘A’。Key 2: (Ctrl-A):选中整个屏幕。Key 3: (Ctrl-C):复制选中区域到缓冲区。Key 4: (Ctrl-V):将缓冲区内容输出到上次输入的结束位置,并显示在屏幕上。现在,你只可以按键 N 次(使用上述四种按键),请问屏幕上最多可以显示几个 'A’呢?样例 1:输入: N = 3输出: 3解释:我们最多可以在屏幕上显示三个’A’通过如下顺序按键:A, A, A样例 2

2020-10-09 23:00:30 438

原创 625 最小因式分解

题目描述:给定一个正整数 a,找出最小的正整数 b 使得 b 的所有数位相乘恰好等于 a。如果不存在这样的结果或者结果不是 32 位有符号整数,返回 0。样例 1输入:48输出:68样例 2输入:15输出:35方法1:主要思路:(1)先处理特殊情形,既为个位数的数时,直接返回原始值即可;(2)将数字使用个位数的数字进行循环整除,为了保证获得的数字尽可能的小,个位数字从大到小,将获得各个位组成数字;(3)判断最终的a的值是否依旧大于9,若是,则说明不能分解为个位数的成绩,然后

2020-10-09 22:35:11 1236

原创 635 设计日志存储系统

题目描述:你将获得多条日志,每条日志都有唯一的 id 和 timestamp,timestamp 是形如 Year:Month:Day:Hour:Minute:Second 的字符串,例如 2017:01:01:23:59:59,所有值域都是零填充的十进制数。设计一个日志存储系统实现如下功能:void Put(int id, string timestamp):给定日志的 id 和 timestamp,将这个日志存入你的存储系统中。int[] Retrieve(String start, Strin

2020-10-09 21:35:50 980

原创 548 将数组分割成和相等的子数组

题目描述:给定一个有 n 个整数的数组,你需要找到满足以下条件的三元组 (i, j, k) :0 < i, i + 1 < j, j + 1 < k < n - 1子数组 (0, i - 1),(i + 1, j - 1),(j + 1, k - 1),(k + 1, n - 1) 的和应该相等。这里我们定义子数组 (L, R) 表示原数组从索引为L的元素开始至索引为R的元素。示例:输入: [1,2,1,2,1,2,1]输出: True解释:i = 1, j = 3

2020-10-09 21:28:54 2274

原创 573 松鼠模拟

题目描述:现在有一棵树,一只松鼠和一些坚果。位置由二维网格的单元格表示。你的目标是找到松鼠收集所有坚果的最小路程,且坚果是一颗接一颗地被放在树下。松鼠一次最多只能携带一颗坚果,松鼠可以向上,向下,向左和向右四个方向移动到相邻的单元格。移动次数表示路程。输入 1:输入:高度 : 5宽度 : 7树的位置 : [2,2]松鼠 : [4,4]坚果 : [[3,0], [2,5]]输出: 12解释:​注意:所有给定的位置不会重叠。松鼠一次最多只能携带一颗坚果。给定的坚果位置没有顺序。高

2020-10-09 20:53:26 277

原创 616 给字符串添加加粗标签

题目描述:给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 和 。如果两个子串有重叠部分,你需要把它们一起用一个闭合标签包围起来。同理,如果两个子字符串连续被加粗,那么你也需要把它们合起来用一个加粗标签包围。样例 1:输入:s = “abcxyz123”dict = [“abc”,“123”]输出:“abcxyz123”样例 2:输入:s = “aaabbcc”dict = [“aaa”,“aab”,“bc”]输出:“a

2020-10-09 20:22:20 689

原创 582 杀死进程

题目描述:给 n 个进程,每个进程都有一个独一无二的 PID (进程编号)和它的 PPID (父进程编号)。每一个进程只有一个父进程,但是每个进程可能会有一个或者多个孩子进程。它们形成的关系就像一个树状结构。只有一个进程的 PPID 是 0 ,意味着这个进程没有父进程。所有的 PID 都会是唯一的正整数。我们用两个序列来表示这些进程,第一个序列包含所有进程的 PID ,第二个序列包含所有进程对应的 PPID。现在给定这两个序列和一个 PID 表示你要杀死的进程,函数返回一个 PID 序列,表示因为杀

2020-10-07 14:59:26 405

原创 562 矩阵中最长的连续1线段

题目描述:给定一个01矩阵 M,找到矩阵中最长的连续1线段。这条线段可以是水平的、垂直的、对角线的或者反对角线的。示例:输入:[[0,1,1,0],[0,1,1,0],[0,0,0,1]]输出: 3提示: 给定矩阵中的元素数量不会超过 10,000。方法1:主要思路:(1)动态规划;class Solution {public: int longestLine(vector<vector<int>>& M) { if(M.em

2020-10-07 14:52:17 620

原创 531 孤独像素 I

题目描述:给定一幅黑白像素组成的图像, 计算黑色孤独像素的数量。图像由一个由‘B’和‘W’组成二维字符数组表示, ‘B’和‘W’分别代表黑色像素和白色像素。黑色孤独像素指的是在同一行和同一列不存在其他黑色像素的黑色像素。示例:输入:[[‘W’, ‘W’, ‘B’],[‘W’, ‘B’, ‘W’],[‘B’, ‘W’, ‘W’]]输出: 3解析: 全部三个’B’都是黑色孤独像素。注意:输入二维数组行和列的范围是 [1,500]。方法1:主要思路:(1)先使用行和列来统计各行各列具

2020-10-07 09:55:53 434

原创 533 孤独像素 II

题目描述:给定一幅由黑色像素和白色像素组成的图像, 与一个正整数N, 找到位于某行 R 和某列 C 中且符合下列规则的黑色像素的数量:行R 和列C都恰好包括N个黑色像素。列C中所有黑色像素所在的行必须和行R完全相同。图像由一个由‘B’和‘W’组成二维字符数组表示, ‘B’和‘W’分别代表黑色像素和白色像素。示例:输入:[[‘W’, ‘B’, ‘W’, ‘B’, ‘B’, ‘W’],[‘W’, ‘B’, ‘W’, ‘B’, ‘B’, ‘W’],[‘W’, ‘B’, ‘W’, ‘B’, ‘B’

2020-10-07 09:55:49 446 1

原创 536 从字符串生成二叉树

题目描述:你需要从一个包括括号和整数的字符串构建一棵二叉树。输入的字符串代表一棵二叉树。它包括整数和随后的 0 ,1 或 2 对括号。整数代表根的值,一对括号内表示同样结构的子树。若存在左子结点,则从左子结点开始构建。示例:输入:“4(2(3)(1))(6(5))”输出:返回代表下列二叉树的根节点:提示:输入字符串中只包含 ‘(’, ‘)’, ‘-’ 和 ‘0’ ~ ‘9’空树由 “” 而非"()"表示。方法1:主要思路:(1)将字符串分成三部分,根节点,左子树,右子树,然后对根节

2020-10-07 09:55:46 1705

原创 544 输出比赛匹配对

题目描述:在 NBA 季后赛中,我们总是安排较强的队伍对战较弱的队伍,例如用排名第 1 的队伍和第 n 的队伍对决,这是一个可以让比赛更加有趣的好策略。现在,给你 n 支队伍,你需要以字符串格式输出它们的 最终 比赛配对。n 支队伍按从 1 到 n 的正整数格式给出,分别代表它们的初始排名(排名 1 最强,排名 n 最弱)。我们用括号(’(’, ‘)’)和逗号(’,’)来表示匹配对——括号(’(’, ‘)’)表示匹配,逗号(’,’)来用于分割。 在每一轮的匹配过程中,你都需要遵循将强队与弱队配对的原则。

2020-10-07 09:55:43 827

原创 549 二叉树中最长的连续序列

题目描述:给定一个二叉树,你需要找出二叉树中最长的连续序列路径的长度。请注意,该路径可以是递增的或者是递减。例如,[1,2,3,4] 和 [4,3,2,1] 都被认为是合法的,而路径 [1,2,4,3] 则不合法。另一方面,路径可以是 子-父-子 顺序,并不一定是 父-子 顺序。示例 1:输入:输出: 2解释: 最长的连续路径是 [1, 2] 或者 [2, 1]。示例 2:输入:输出: 3解释: 最长的连续路径是 [1, 2, 3] 或者 [3, 2, 1]。方法1:主要思路:

2020-10-07 09:55:39 1183

原创 555 分割连接字符串

题目描述:给定一个字符串列表,你可以将这些字符串连接成一个循环字符串,对于每个字符串,你可以选择是否翻转它。在所有可能的循环字符串中,你需要分割循环字符串(这将使循环字符串变成一个常规的字符串),然后找到字典序最大的字符串。具体来说,要找到字典序最大的字符串,你需要经历两个阶段:将所有字符串连接成一个循环字符串,你可以选择是否翻转某些字符串,并按照给定的顺序连接它们。在循环字符串的某个位置分割它,这将使循环字符串从分割点变成一个常规的字符串。你的工作是在所有可能的常规字符串中找到字典序最大的一个。

2020-10-07 09:55:22 430

原创 505 迷宫 II

题目描述:由空地和墙组成的迷宫中有一个球。球可以向上下左右四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向。给定球的起始位置,目的地和迷宫,找出让球停在目的地的最短距离。距离的定义是球从起始位置(不包括)到目的地(包括)经过的空地个数。如果球无法停在目的地,返回 -1。迷宫由一个0和1的二维数组表示。 1表示墙壁,0表示空地。你可以假定迷宫的边缘都是墙壁。起始位置和目的地的坐标通过行号和列号给出。示例 1:输入 1: 迷宫由以下二维数组表示0 0 1 0 00 0 0

2020-10-06 11:03:31 506

原创 1603 设计停车系统

题目描述:给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。注意: x 不必 是 nums 的中的元素。如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。示例 1:输入:nums = [3,5]输出:2解释:有 2 个元素(3 和 5)大于或等于 2 。

2020-10-06 09:12:39 173

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除