摘要: 问题 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 解答1 阅读全文
posted @ 2021-02-07 18:22 tmpUser 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 问题 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解答1:备忘录 class Solution { public: int trap(vector<int>& hei 阅读全文
posted @ 2021-02-07 18:19 tmpUser 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 问题 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。 然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。 给定 n ≥ 1 阅读全文
posted @ 2021-02-07 18:17 tmpUser 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 问题 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』(Manhat 阅读全文
posted @ 2021-02-07 18:14 tmpUser 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。 例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2, 5]。 对于每一个索引,我们可以通过从字符串 S 中 阅读全文
posted @ 2021-02-07 18:12 tmpUser 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 问题 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象; void insert(String word) 向前缀树中插入字符 阅读全文
posted @ 2021-02-07 18:10 tmpUser 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 问题 一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。 有些房间由恶 阅读全文
posted @ 2021-02-07 18:08 tmpUser 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 问题 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 0 ⇐ A.length ⇐ 40000 0 ⇐ A[i] < 40000 示例 输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 阅读全文
posted @ 2021-02-07 18:06 tmpUser 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个无序的整数数组,找到其中最长递增子序列的长度。 示例 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的递增子序列是 [2,3,7,101],它的长度是 4。 解答1:动态规划 class Solution { public: int lengthOfLIS 阅读全文
posted @ 2021-02-07 18:03 tmpUser 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 说明: 假设你总是可以到达数组的最后一个位置。 示例 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 阅读全文
posted @ 2021-02-07 17:43 tmpUser 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 问题 对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。 返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。 示例 输入:str1 = "ABABAB", str2 = "ABAB" 输出:" 阅读全文
posted @ 2021-02-07 17:40 tmpUser 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个 阅读全文
posted @ 2021-02-07 17:38 tmpUser 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 k。 示例 输入: nums = [1,2,3,1], k = 3, t = 0 输出: true 输入: nums = 阅读全文
posted @ 2021-02-07 17:32 tmpUser 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 示例 输入: nums = [1,2,3,1], k = 3 输出: true 输入: nums = [1,0,1,1], k 阅读全文
posted @ 2021-02-07 17:29 tmpUser 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)至多有 h 篇论文分别被引用了至少 h 阅读全文
posted @ 2021-02-07 17:27 tmpUser 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)至多有 h 篇论文分别被引用了至少 h 次。(其余的 N - 阅读全文
posted @ 2021-02-07 17:25 tmpUser 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 示例 输入: 3 输出: [1,3,3,1] 解答 class Solution { public: vector<int> getRow(int rowIndex) { vector<int> result; for (i 阅读全文
posted @ 2021-02-07 17:19 tmpUser 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 问题 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse 阅读全文
posted @ 2021-02-07 16:21 tmpUser 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。) 示例 [[0,0,1,0,0,0,0,1, 阅读全文
posted @ 2021-02-07 16:15 tmpUser 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 问题 在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。 车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝 阅读全文
posted @ 2021-02-07 16:11 tmpUser 阅读(39) 评论(0) 推荐(0) 编辑