![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣练习题
一道题目写一天
这个作者很懒,什么都没留下…
展开
-
天际线问题
问题描述 :城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。现在,假设您获得了城市风光照片(图A)上显示的所有建筑物的位置和高度,请编写一个程序以输出由这些建筑物形成的天际线(图B)。每个建筑物的几何信息用三元组 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分别是第 i 座建筑物左右边缘的 x 坐标,Hi 是其高度。可以保证 0 ≤ Li, Ri ≤ INT_MAX, 0 < Hi ≤ INT_MAX 和 Ri - Li > 0。您可以假设所有建筑物都是在绝对平坦且原创 2020-09-04 21:53:40 · 393 阅读 · 0 评论 -
掉落的方块
问题描述 :在无限长的数轴(即 x 轴)上,我们根据给定的顺序放置对应的正方形方块。第 i 个掉落的方块(positions[i] = (left, side_length))是正方形,其中 left 表示该方块最左边的点位置(positions[i][0]),side_length 表示该方块的边长(positions[i][1])。每个方块的底部边缘平行于数轴(即 x 轴),并且从一个比目前所有的落地方块更高的高度掉落而下。在上一个方块结束掉落,并保持静止后,才开始掉落新方块。方块的底边具有非常原创 2020-09-03 19:30:07 · 427 阅读 · 0 评论 -
矩形面积 II
问题描述 :我们给出了一个(轴对齐的)矩形列表 rectangles 。 对于 rectangle[i] = [x1, y1, x2, y2],其中(x1,y1)是矩形 i 左下角的坐标,(x2,y2)是该矩形右上角的坐标。找出平面中所有矩形叠加覆盖后的总面积。 由于答案可能太大,请返回它对 10 ^ 9 + 7 取模的结果。示例 1:输入:[[0,0,2,2],[1,0,2,3],[1,0,3,1]]输出:6解释:如图所示。示例 2:输入:[[0,0,1000000000,1000000原创 2020-09-02 16:12:53 · 490 阅读 · 0 评论 -
子数组中占绝大多数的元素
问题描述 :实现一个 MajorityChecker 的类,它具有下述两个 API:1、MajorityChecker(int[] arr) :用给定的数组 arr 来构造一个 MajorityChecker 的实例。2、int query(int left, int right, int threshold)参数为:0 <= left <= right < arr.length ,其中arr.length表示数组 arr 的长度。2 * threshold > righ原创 2020-09-02 16:10:28 · 274 阅读 · 0 评论 -
交换字符串中的元素
问题描述 :给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = “dcab”, pairs = [[0,3],[1,2]]输出:“bacd”解释:交换 s[0] 和 s[3], s = “bcad”交换 s[1] 和 s[2], s = “bac原创 2020-09-01 16:40:09 · 643 阅读 · 0 评论 -
由斜杠划分区域
问题描述 :在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此输入的字符串中是 \,在代码中函数调用时传递的实参用 “\” 表示一个""。)。返回区域的数目。示例 1:输入:[" /","/ "]输出:2解释:2x2 网格如下:示例 2:输入:[" /"," "]输出:1解释:2x2 网格如下:示例 3:输入:[“/”,“/”原创 2020-08-31 15:47:46 · 255 阅读 · 0 评论 -
移除最多的同行或同列石头
问题描述 :我们将石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。每次 move 操作都会移除一块所在行或者列上有其他石头存在的石头。请你设计一个算法,计算最多能执行多少次 move 操作?示例 1:输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]输出:5示例 2:输入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]]输出:3示例 3:输入:stones = [[0,0]]输出:原创 2020-08-30 20:22:26 · 277 阅读 · 0 评论 -
单词替换
问题描述 :在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。现在,给定一个由许多词根组成的词典和一个句子。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。你需要输出替换之后的句子。示例 1:输入:dictionary = [“cat”,“bat”,“rat”], sen原创 2020-08-30 16:18:42 · 308 阅读 · 0 评论 -
驼峰式匹配
问题描述 :如果我们可以将小写字母插入模式串 pattern 得到待查询项 query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。)给定待查询列表 queries,和模式串 pattern,返回由布尔值组成的答案列表 answer。只有在待查项 queries[i] 与模式串 pattern 匹配时, answer[i] 才为 true,否则为 false。示例 1:输入:pattern = “FB”,queries = [“FooBar”,“FooBa原创 2020-08-30 15:50:43 · 266 阅读 · 0 评论 -
词典中最长的单词
问题描述 :给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入:words = [“w”,“wo”,“wor”,“worl”, “world”]输出:“world”解释:单词"world"可由"w", “wo”, “wor”, 和 “worl"添加一个字母组成。第一个单词是"w”,该单词只有一个字母。我们需要从一个字母的单原创 2020-08-29 21:48:23 · 431 阅读 · 0 评论 -
编辑距离
问题描述 :给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)示例 2:输入:word1 = “int原创 2020-08-27 09:59:20 · 247 阅读 · 0 评论 -
戳气球
问题描述 :有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] = 1,但注意它们不原创 2020-08-25 16:58:41 · 283 阅读 · 0 评论 -
最大正方形
问题描述 :在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4输入说明 :首先输入矩阵的行数m、列数n然后输入m行,每行n个字符0或1,中间无空格分隔。输出说明 :输出一个整数输入范例 :4 510100101111111110010输出范例 :4//dp没用到 遇到一个1 就往前找 遇到0就停止#include<iostr原创 2020-08-24 17:15:52 · 393 阅读 · 0 评论 -
等差数列划分
问题描述 :如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], …, A[原创 2020-08-24 16:18:56 · 436 阅读 · 0 评论 -
整数拆分
问题描述 :给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。输入说明 :输入一个整数nn 不小于 2 且不大于 58输出说明 :输出一个整数输入范例 :10输出范例 :36#include<iostream>#inclu原创 2020-08-23 17:18:30 · 339 阅读 · 0 评论 -
单词拆分
问题描述 :给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, word原创 2020-08-23 17:06:48 · 473 阅读 · 0 评论 -
最佳买卖股票时机含冷冻期
问题描述 :给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]输入说明 :首先输入prices数组元素数目n,然后输入n个整数输出说明原创 2020-08-23 11:09:47 · 185 阅读 · 0 评论 -
不同路径 II
问题描述 :一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从左上原创 2020-08-21 19:52:22 · 175 阅读 · 0 评论 -
不同路径
问题描述 :一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向原创 2020-08-21 19:11:45 · 151 阅读 · 0 评论 -
使用最小花费爬楼梯
问题描述 :数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:输入: cost = [1, 100, 1, 1, 1,原创 2020-08-21 17:14:53 · 230 阅读 · 0 评论 -
跳跃游戏 IV
问题描述 :给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。每一步,你可以从下标 i 跳到下标:i + 1 满足:i + 1 < arr.lengthi - 1 满足:i - 1 >= 0j 满足:arr[i] == arr[j] 且 i != j请你返回到达数组最后一个元素的下标处所需的最少操作次数 。注意:任何时候你都不能跳到数组外面。示例 1:输入:arr = [100,-23,-23,404,100,23,23,23,3,404]输出:3解释原创 2020-08-18 17:12:40 · 398 阅读 · 0 评论 -
跳跃游戏 III
问题描述 :这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]。请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。注意,不管是什么情况下,你都无法跳到数组之外。示例 1:输入:arr = [4,2,3,0,3,1,2], start = 5输出:true解释:到达值为 0 的下标 3 有以下可能方案:下标 5 -> 下标 4 -> 下标 1 -> 下标原创 2020-08-18 14:15:35 · 200 阅读 · 0 评论 -
被围绕的区域
问题描述 :给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为 ‘X’。如果两个元素在水平或垂原创 2020-08-18 10:56:34 · 1241 阅读 · 0 评论 -
01 矩阵
问题描述 :给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0。矩阵中的元素只在四个方向上相邻: 上、下、左、右。可使用以下main函数:int main(){ v原创 2020-08-17 17:18:09 · 616 阅读 · 0 评论 -
扫雷游戏
问题描述 :让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:如果一个地雷(‘M’)被挖出,游戏就结束了- 把它改为 ‘X’。如原创 2020-08-17 16:02:31 · 509 阅读 · 0 评论 -
金字塔转换矩阵
问题描述 :现在,我们用一些方块来堆砌一个金字塔。 每个方块用仅包含一个字母的字符串表示。使用三元组表示金字塔的堆砌规则如下:对于三元组(A, B, C) ,“C”为顶层方块,方块“A”、“B”分别作为方块“C”下一层的的左、右子块。当且仅当(A, B, C)是被允许的三元组,我们才可以将其堆砌上。初始时,给定金字塔的基层 bottom,用一个字符串表示。一个允许的三元组列表 allowed,每个三元组用一个长度为 3 的字符串表示。如果可以由基层一直堆到塔尖就返回 true ,否则返回 fals原创 2020-08-17 10:06:51 · 247 阅读 · 0 评论 -
大礼包
问题描述 :在商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5], [3,2], [[3,0,5],[1,2,10]]输出: 14解释:有A和B两种物品,价格分别为¥2和原创 2020-08-16 11:03:53 · 333 阅读 · 0 评论 -
递增子序列
问题描述 :给定一个整型数组, 你的任务是找到所有该数组的递增子序列并输出其数量,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: 8解释:递增子序列包括:[[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]],共8个说明:给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。输入说明 :原创 2020-08-15 19:47:37 · 1494 阅读 · 0 评论 -
重新安排行程
问题描述 :给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例 1:输入原创 2020-08-14 20:10:07 · 163 阅读 · 0 评论 -
课程表
问题描述 :你必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: false原创 2020-08-14 12:07:16 · 165 阅读 · 0 评论 -
串联所有单词的子串
问题描述 :给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:0 9解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出时,按照索引由小到大顺序输出。示例原创 2020-08-10 16:37:55 · 201 阅读 · 0 评论 -
前K个高频单词
问题描述 :给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “day”, “is”,原创 2020-08-09 22:04:33 · 191 阅读 · 0 评论 -
连续数组
问题描述 :给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。注意: 给定的二进制数组的长度不会超过50000。输入说明 :首先输入二进制数组的长度n,然后输入n个0或1,以空格分隔输出说明 :输出一个整数,表示结果输入范例原创 2020-08-09 21:16:11 · 300 阅读 · 0 评论 -
森林中的兔子
问题描述 :森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 “2” 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最少数量是 5:原创 2020-08-09 16:55:44 · 270 阅读 · 0 评论 -
墙砖
问题描述 :你的面前有一堵矩形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你需要找出怎样画才能使这条线穿过的砖块数量最少,并且返回穿过的砖块数量。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。示例:输入: [[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],原创 2020-08-09 13:11:00 · 159 阅读 · 0 评论 -
和为K的子数组
问题描述 :给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。输入说明 :首先输入nums数组的长度n,然后输入n个整数,以空格分隔。最后输入整数k。n的范围为 [1, 20000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。输出说明 :输出一个整数输入范例 :31 1 1原创 2020-08-08 21:29:44 · 271 阅读 · 0 评论 -
最长和谐子序列
问题描述 :和谐数组是指一个数组(长度>=2)里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。如果找不到这样的数组,则输出0。示例 :输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000.输入说明 :首先输入整数数组的长度n,2<=n<=10000然后输入n个整数,以空格分隔。输出说明 :输出最长的和原创 2020-08-08 20:24:32 · 277 阅读 · 0 评论 -
找到字符串中所有字母异位词
问题描述 :给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。示例 1:输入:s: “cbaebabacd” p: “abc”输出:[0, 6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的字母异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的字母异位词。示原创 2020-08-08 19:34:21 · 244 阅读 · 0 评论 -
有效的数独
问题描述 :判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:53…7…6…195….98…6.8…6…34…8.3…17…2…6.6…28.…419…5…8…79输出: true示例 2:输入:原创 2020-08-07 20:14:50 · 149 阅读 · 0 评论 -
根据字符出现频率排序
问题描述 :给定一个字符串,请将字符串里的字符按照出现的频率降序排列,如果频率相同,则按照字符的ASCII码升序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前,而且’r’比’t’的ASCII码小。示例 2:输入:“cccaaa”输出:“aaaccc”解释:'c’和’a’都出现三次。因此按照字符升序排列,'a’在’c’前。示例 3:输入:“Aabb”输出:“bbAa”解释:原创 2020-08-07 13:17:30 · 1627 阅读 · 1 评论