![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
面试题:《剑指offer》代码
漆黑丶
帅哥
展开
-
【剑指 Offer】 37. 序列化二叉树
题目:请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。示例:输入:root = [1,2,3,null,null,4,5]输出:[1,2,3,nu原创 2021-12-20 16:26:24 · 69 阅读 · 0 评论 -
【剑指 Offer II】 112. 最长递增路径
题目:给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。示例 1:输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]输出:4解释:最长递增路径为 [1, 2, 6, 9]。示例 2:输入:matrix = [[3,4,5],[3,2,6],[2,2,1]]输出:4解释:最长递增路径是 [3, 4, 5, 6]。注意不原创 2021-11-22 17:09:09 · 265 阅读 · 0 评论 -
【剑指 Offer II】 111. 计算除法
题目:给定一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。返回 所有问题的答案 。如果存在某个无法确定的答案,则原创 2021-11-22 11:09:16 · 224 阅读 · 0 评论 -
【剑指 Offer II】 110. 所有路径
题目:给定一个有 n 个节点的有向无环图,用二维数组 graph 表示,请找到所有从 0 到 n-1 的路径并输出(不要求按顺序)。graph 的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些结点(译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a ),若为空,就是没有下一个节点了。示例 1:输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]解释:有两条路径 0 -> 1 -> 3 和 0 -> 2原创 2021-11-19 17:05:41 · 478 阅读 · 0 评论 -
【剑指 Offer II】 108. 单词演变
题目:在字典(单词列表) wordList 中,从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wordList 中的单词。给定两个长度相同但内容不同的单词 beginWord 和 endWord 和一个字典 wordList ,找到从 beginWord 到 endWord 的 最短转换序列 中的 单词数目 。如果原创 2021-11-19 16:19:40 · 222 阅读 · 0 评论 -
【剑指 Offer II】 107. 矩阵中的距离
题目:给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:mat = [[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[0,0,0]]示例 2:输入:mat = [[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[1,2,1]]提示:m == mat.lengthn == mat原创 2021-11-19 15:20:44 · 389 阅读 · 0 评论 -
【剑指 Offer II】 106. 二分图
题目:存在一个 无向图 ,图中有 n 个节点。其中每个节点都有一个介于 0 到 n - 1 之间的唯一编号。给定一个二维数组 graph ,表示图,其中 graph[u] 是一个节点数组,由节点 u 的邻接节点组成。形式上,对于 graph[u] 中的每个 v ,都存在一条位于节点 u 和节点 v 之间的无向边。该无向图同时具有以下属性:不存在自环(graph[u] 不包含 u)。不存在平行边(graph[u] 不包含重复值)。如果 v 在 graph[u] 内,那么 u 也应该在 graph[v原创 2021-11-19 11:04:04 · 79 阅读 · 0 评论 -
【剑指 Offer II】 105. 岛屿的最大面积
题目:给定一个由 0 和 1 组成的非空二维数组 grid ,用来表示海洋岛屿地图。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。示例 1:输入: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,原创 2021-11-18 17:26:58 · 192 阅读 · 0 评论 -
【剑指 Offer II】 103. 最少的硬币数目
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount = 0输出:0示例 4:输入:co原创 2021-11-17 11:29:52 · 264 阅读 · 0 评论 -
【剑指 Offer II】 102. 加减的目标值
题目:给定一个正整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为原创 2021-11-17 10:27:10 · 124 阅读 · 0 评论 -
【剑指 Offer II】 101. 分割等和子集
题目:给定一个非空的正整数数组 nums ,请判断能否将这些数字分成元素和相等的两部分。示例 1:输入:nums = [1,5,11,5]输出:true解释:nums 可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:nums 不可以分为和相等的两部分提示:1 <= nums.length <= 2001 <= nums[i] <= 100注意:本题与主站 416 题相同: https://原创 2021-11-17 10:27:37 · 191 阅读 · 0 评论 -
【剑指 Offer II】 100. 三角形中最小路径之和
题目:给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示: 2 3 4 6 5 74 1 8 3自顶向下的最原创 2021-11-16 11:16:16 · 75 阅读 · 0 评论 -
【剑指 Offer II】 099. 最小路径之和
题目:给定一个包含非负整数的 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提示:m == grid.lengthn == grid[i].length1 <= m, n <原创 2021-11-16 10:57:49 · 277 阅读 · 0 评论 -
【剑指 Offer II】 098. 路径的数目
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -原创 2021-11-16 10:44:41 · 76 阅读 · 0 评论 -
【剑指 Offer II】 097. 子序列的数目
题目:给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:输入:s = “rabbbit”, t = “rabbit”输出:3解释:如下图所示, 有 3 种可以从 s 中得到 “rabbit” 的方案。rabbbitrabbbit原创 2021-11-16 10:35:17 · 252 阅读 · 0 评论 -
【剑指 Offer II】 096. 字符串交织
题目:给定三个字符串 s1、s2、s3,请判断 s3 能不能由 s1 和 s2 交织(交错) 组成。两个字符串 s 和 t 交织 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + … + snt = t1 + t2 + … + tm|n - m| <= 1交织 是 s1 + t1 + s2 + t2 + s3 + t3 + … 或者 t1 + s1 + t2 + s2 + t3 + s3 + …提示:a + b 意味着字符串 a 和 b 连接。原创 2021-11-16 09:49:08 · 87 阅读 · 0 评论 -
【剑指 Offer II】 095. 最长公共子序列
题目:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。示例 1:输入:text1 = “abcde”, text2 = “原创 2021-11-15 15:08:28 · 95 阅读 · 0 评论 -
【剑指 Offer II】 094. 最少回文分割
题目:给定一个字符串 s,请将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的 最少分割次数 。示例 1:输入:s = “aab”输出:1解释:只需一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。示例 2:输入:s = “a”输出:0示例 3:输入:s = “ab”输出:1提示:1 <= s.length <= 2000s 仅由小写英文字母组成注意:本题与主站 132 题相同: https://leetcode-cn.com/prob原创 2021-11-15 14:51:31 · 708 阅读 · 0 评论 -
【剑指 Offer II】 093. 最长斐波那契数列
题目:如果序列 X_1, X_2, …, X_n 满足下列条件,就说它是 斐波那契式 的:n >= 3对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0 。(回想一下,子序列是从原序列 arr 中派生出来的,它从 arr 中删掉任意数量的元素(也可以不删),而不改变其余元素的顺序。例如, [3, 5, 8] 是 [3, 4, 5,原创 2021-11-15 11:14:18 · 86 阅读 · 0 评论 -
【剑指 Offer II】 092. 翻转字符
题目:如果一个由 ‘0’ 和 ‘1’ 组成的字符串,是以一些 ‘0’(可能没有 ‘0’)后面跟着一些 ‘1’(也可能没有 ‘1’)的形式组成的,那么该字符串是 单调递增 的。我们给出一个由字符 ‘0’ 和 ‘1’ 组成的字符串 s,我们可以将任何 ‘0’ 翻转为 ‘1’ 或者将 ‘1’ 翻转为 ‘0’。返回使 s 单调递增 的最小翻转次数。示例 1:输入:s = “00110”输出:1解释:我们翻转最后一位得到 00111.示例 2:输入:s = “010110”输出:2解释:我们翻转原创 2021-11-15 10:34:31 · 203 阅读 · 0 评论 -
【剑指 Offer II】 091. 粉刷房子
题目:假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例原创 2021-11-15 10:08:36 · 60 阅读 · 0 评论 -
【剑指 Offer II】 090. 环形房屋偷盗
题目:一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金原创 2021-11-12 10:54:15 · 98 阅读 · 0 评论 -
【剑指 Offer II】 089. 房屋偷盗
题目:一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:nums = [1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例原创 2021-11-12 10:26:58 · 81 阅读 · 0 评论 -
【剑指 Offer II】 088. 爬楼梯的最少成本
题目:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当爬上一个阶梯都要花费对应的体力值,一旦支付了相应的体力值,就可以选择向上爬一个阶梯或者爬两个阶梯。请找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:cost = [1,原创 2021-11-12 10:04:19 · 223 阅读 · 0 评论 -
【剑指 Offer II】 087. 复原 IP
题目:给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。示例 1:输入:s = “255原创 2021-11-12 09:50:55 · 455 阅读 · 0 评论 -
【剑指 Offer II】 086. 分割回文子字符串
题目:给定一个字符串 s ,请将 s 分割成一些子串,使每个子串都是 回文串 ,返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “google”输出:[[“g”,“o”,“o”,“g”,“l”,“e”],[“g”,“oo”,“g”,“l”,“e”],[“goog”,“l”,“e”]]示例 2:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 3:输入:s = “a”输出:[[“a”]提示:1 <原创 2021-11-11 15:32:50 · 128 阅读 · 0 评论 -
【剑指 Offer II】 085. 生成匹配的括号
题目:正整数 n 代表生成括号的对数,请设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8注意:本题与主站 22 题相同: https://leetcode-cn.com/problems/generate-parentheses/答案:class Solution {原创 2021-11-11 11:30:21 · 827 阅读 · 0 评论 -
【剑指 Offer II】 084. 含有重复元素集合的全排列
题目:给定一个可包含重复数字的整数集合 nums ,按任意顺序 返回它所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length <= 8-10 <= nums[i] <= 10注意:本题与主站 47 题相同:原创 2021-11-11 11:07:10 · 116 阅读 · 0 评论 -
【剑指 Offer II】 083. 没有重复元素集合的全排列
题目:给定一个不含重复数字的整数数组 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]输出:[[1]]提示:1 <= nums.length <= 6-10 <= nums[i] <=原创 2021-11-11 10:56:37 · 819 阅读 · 0 评论 -
【剑指 Offer II】 082. 含有重复元素集合的组合
题目:给定一个可能有重复数字的整数数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次,解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[ [1,1,6], [1,2,5], [1,7], [2,6]]示例 2:输入: candidates = [2,5,2,1,原创 2021-11-11 10:27:47 · 1256 阅读 · 0 评论 -
【剑指 Offer II】 081. 允许重复选择元素的组合
题目:给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。示例 1:输入: candidates = [2,3,6,7], target = 7输出: [[7],[2,2,3]]示例 2:输入: candida原创 2021-11-09 15:12:03 · 73 阅读 · 0 评论 -
【剑指 Offer II】 080. 含有 k 个元素的组合
题目:给定两个整数 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]]提示:1 <= n <= 201 <= k <= n注意:本题与主站 77 题相同: https://leetcode-cn.com/problems/combinations/答案:原创 2021-11-09 11:28:08 · 98 阅读 · 0 评论 -
【剑指 Offer II】 079. 所有子集
题目:给定一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互不原创 2021-11-09 11:04:54 · 286 阅读 · 0 评论 -
【剑指 Offer II】 077. 链表排序
题目:给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val <= 105进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗原创 2021-11-09 10:45:08 · 55 阅读 · 0 评论 -
【剑指 Offer II】 078. 合并排序链表
题目:给定一个链表数组,每个链表都已经按升序排列。请将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = []输出:[]原创 2021-11-09 10:30:23 · 116 阅读 · 0 评论 -
【剑指 Offer II】 076. 数组中的第 k 大的数字
题目:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4提示:1 <= k <= nums.length <= 104-104 <= nums[i] <= 104注意:本题与主站 215 题相同: htt原创 2021-11-08 16:11:19 · 83 阅读 · 0 评论 -
【剑指 Offer II】 075. 数组相对排序
题目:给定两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:1 <= arr1.length, a原创 2021-11-08 15:51:13 · 99 阅读 · 0 评论 -
【剑指 Offer II】 074. 合并区间
题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4原创 2021-11-08 15:32:25 · 79 阅读 · 1 评论 -
【剑指 Offer II】 073. 狒狒吃香蕉
题目:狒狒喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。狒狒可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉,下一个小时才会开始吃另一堆的香蕉。狒狒喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。示例 1:输入: piles = [3,6原创 2021-11-08 11:31:11 · 875 阅读 · 1 评论 -
【剑指 Offer II】 072. 求平方根
题目:给定一个非负整数 x ,计算并返回 x 的平方根,即实现 int sqrt(int x) 函数。正数的平方根有两个,只输出其中的正数平方根。如果平方根不是整数,输出只保留整数的部分,小数部分将被舍去。示例 1:输入: x = 4输出: 2示例 2:输入: x = 8输出: 2解释: 8 的平方根是 2.82842…,由于小数部分将被舍去,所以返回 2提示:0 <= x <= 231 - 1注意:本题与主站 69 题相同: https://leetcode-cn.c原创 2021-11-08 11:07:43 · 93 阅读 · 0 评论