2 王培琳

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 7k+

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

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

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

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

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

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

2020-10-22 11:10:13

1057 校园自行车分配

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

2020-10-21 10:20:38

723 粉碎糖果

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

2020-10-21 10:13:08

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

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

755 倒水

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

2020-10-15 15:06:51

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

1055 形成字符串的最短路径

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

2020-10-14 23:07:27

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

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

742 二叉树最近的叶节点

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

2020-10-13 10:30:18

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

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

708 循环有序列表的插入

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

2020-10-12 14:51:02

694 不同岛屿的数量

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

2020-10-11 22:52:18

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

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。