C语言刷题笔记:leetcode-中等
文章平均质量分 63
将自己在leetCode刷的题记录下,以便日后查看和自我提高
不服输的小悦阳
我还没有资格放松自己不练,记录下自己做过的,为的是自己能够不忘记,能够以此督促自己吧!
展开
-
C练题笔记之:Leetcode-662. 二叉树最大宽度
给你一棵二叉树的根节点 root ,返回树的 最大宽度。树的 最大宽度 是所有层中最大的 宽度。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。题目数据保证答案将会在 32 位 带符号整数范围内。示例 1:输入:root = [1,3,2,5,3,null,9]输出:4。...原创 2022-08-28 22:47:32 · 703 阅读 · 0 评论 -
C练题笔记之:Leetcode-658. 找到 K 个最接近的元素
给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b示例 1:输入:arr = [1,2,3,4,5], k = 4, x = 3输出:[1,2,3,4]示例 2:输入:arr = [1,2,3,4,5], k = 4, x = -1。...原创 2022-08-27 00:05:14 · 471 阅读 · 0 评论 -
C练题笔记之:Leetcode-第 85 场双周赛---6158. 字母移位 II
给你一个小写英文字母组成的字符串s和一个二维整数数组shifts,其中。对于每个i,将s中从下标starti到下标endi(两者都包含)所有字符都进行移位运算,如果将字符向后移位,如果将字符向前移位。将一个字符移位的意思是将这个字符用字母表中字母替换(字母表视为环绕的,所以'z'变成'a')。类似的,将一个字符移位的意思是将这个字符用字母表中字母替换(字母表是环绕的,所以'a'变成'z')。请你返回对s进行所有移位操作以后得到的最终字符串。"ace"原创 2022-08-21 01:06:28 · 338 阅读 · 0 评论 -
C练题笔记之:Leetcode-第 85 场双周赛---6157. 二进制字符串重新安排顺序需要的时间
C练题笔记之:Leetcode-第 85 场双周赛---6157. 二进制字符串重新安排顺序需要的时间原创 2022-08-21 00:18:11 · 270 阅读 · 0 评论 -
C练题笔记之:Leetcode-137. 只出现一次的数字 II
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99提示:nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次来源:力扣(LeetCode)链接:https://leetcode.cn/problems/single-number-ii。原创 2022-08-20 22:24:39 · 1178 阅读 · 0 评论 -
C练题笔记之:Leetcode-654. 最大二叉树
C语言联系题:Leetcode-654. 最大二叉树,运用递归完成原创 2022-08-20 21:42:41 · 222 阅读 · 0 评论 -
C练题笔记之:Leetcode-565. 数组嵌套
Leetcode-565. 数组嵌套 做题笔记原创 2022-07-17 21:20:37 · 219 阅读 · 0 评论 -
C练题笔记之:Leetcode-38. 外观数列
Leetcode-38. 外观数列 练题笔记原创 2022-07-17 20:29:08 · 117 阅读 · 0 评论 -
C练题笔记之:Leetcode-200. 岛屿数量
题目:给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:grid...原创 2022-05-15 19:42:32 · 434 阅读 · 0 评论 -
C练题笔记之:Leetcode-684. 冗余连接
题目:树可以看成是一个连通且 无环的无向图。给定往一棵n 个节点 (节点值1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges,edges[i] = [ai, bi]表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如果有多个答案,则返回数组edges中最后出现的边。示例 1:输入: ...原创 2022-05-14 18:54:28 · 333 阅读 · 0 评论 -
C练题笔记之:Leetcode-1823. 找出游戏的获胜者
题目:共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置 开始 。沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。你数到的最后一名小伙伴需要离开圈子,并视作输掉原创 2022-05-04 18:43:49 · 422 阅读 · 0 评论 -
C练题笔记之:Leetcode-547. 省份数量
题目:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入原创 2022-05-01 20:45:49 · 318 阅读 · 0 评论 -
C练题笔记之:Leetcode-1305. 两棵二叉搜索树中的所有元素
题目:给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。.示例 1:输入:root1 = [2,1,4], root2 = [1,0,3]输出:[0,1,1,2,3,4]示例 2:输入:root1 = [1,null,8], root2 = [8,1]输出:[1,1,8,8]提示:每棵树的节点数在[0, 5000] 范围内-105<= Node.val <= 105来源:...原创 2022-05-01 14:06:45 · 213 阅读 · 0 评论 -
C练题笔记之:Leetcode-357. 统计各位数字都不同的数字个数
题目:给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。示例 2:输入:n = 0输出:1提示:0 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cou...原创 2022-04-18 01:00:56 · 645 阅读 · 0 评论 -
C练题笔记之:Leetcode-962. 最大宽度坡
题目:给定一个整数数组A,坡是元组(i, j),其中i < j且A[i] <= A[j]。这样的坡的宽度为j - i。找出 A 中的坡的最大宽度,如果不存在,返回 0 。示例 1:输入:[6,0,8,2,1,5]输出:4解释:最大宽度的坡为 (i, j) = (1, 5): A[1] = 0 且 A[5] = 5.示例 2:输入:[9,8,1,0,1,9,4,0,4,1]输出:7解释:最大宽度的坡为 (i, j) = (2, 9): A[2] ...原创 2022-04-10 17:22:58 · 1103 阅读 · 0 评论 -
C练题笔记之:Leetcode-901. 股票价格跨度
题目:编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。示例:输入:["StockSpanner","next","next","next","next","next","next","nex原创 2022-04-10 16:55:03 · 183 阅读 · 0 评论 -
C练题笔记之:Leetcode-503. 下一个更大元素 II
题目:给定一个循环数组nums(nums[nums.length - 1]的下一个元素是nums[0]),返回nums中每个元素的 下一个更大元素 。数字 x的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: nums = [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的...原创 2022-04-10 15:55:35 · 1121 阅读 · 0 评论 -
C练题笔记之:Leetcode-739. 每日温度
题目:给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:输入: te...原创 2022-04-09 21:31:54 · 1022 阅读 · 0 评论 -
C练题笔记之:Leetcode-29. 两数相除
题目:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) =原创 2022-04-09 18:46:48 · 145 阅读 · 0 评论 -
C练题笔记之:Leetcode-24. 两两交换链表中的节点
题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100来源:力扣(LeetCode)链接:https:.原创 2022-04-05 17:34:33 · 1530 阅读 · 0 评论 -
C练题笔记之:Leetcode-307. 区域和检索 - 数组可修改
题目:给你一个数组 nums ,请你完成两类查询。其中一类查询要求 更新 数组nums下标对应的值另一类查询要求返回数组nums中索引left和索引right之间(包含)的nums元素的 和,其中left <= right实现 NumArray 类:NumArray(int[] nums) 用整数数组 nums 初始化对象void update(int index, int val) 将 nums[index] 的值 更新 为 valint sumRange...原创 2022-04-04 15:21:20 · 1379 阅读 · 0 评论 -
C练题笔记之:Leetcode-948. 令牌放置
题目:你的初始 能量 为P,初始 分数 为0,只有一包令牌 tokens 。其中 tokens[i] 是第 i 个令牌的值(下标从 0 开始)。令牌可能的两种使用方法如下:如果你至少有token[i]点 能量 ,可以将令牌 i 置为正面朝上,失去token[i]点 能量 ,并得到1分 。如果我们至少有1分 ,可以将令牌 i 置为反面朝上,获得token[i] 点 能量 ,并失去1分 。每个令牌 最多 只能使用一次,使用 顺序不限 ,不需 使用所有令牌。在使用任意...原创 2022-03-27 22:53:28 · 1217 阅读 · 0 评论 -
C练题笔记之:Leetcode-393. UTF-8 编码验证
题目:给定一个表示数据的整数数组data,返回它是否为有效的 UTF-8 编码。UTF-8 中的一个字符可能的长度为 1 到 4 字节,遵循以下的规则:对于 1 字节的字符,字节的第一位设为 0 ,后面 7 位为这个符号的 unicode 码。对于 n 字节的字符 (n > 1),第一个字节的前 n 位都设为1,第 n+1 位设为 0 ,后面字节的前两位一律设为 10 。剩下的没有提及的二进制位,全部为这个符号的 unicode 码。这是 UTF-8 编码的工作方式: ...原创 2022-03-13 23:48:03 · 1585 阅读 · 0 评论 -
C练题笔记之:Leetcode-22. 括号生成
题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所有.原创 2022-03-19 23:21:13 · 333 阅读 · 0 评论 -
C练题笔记之:Leetcode-18. 四数之和
题目:给你一个由 n 个整数组成的数组nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d< na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。示例 1:输入:nums = ...原创 2022-03-12 19:52:12 · 404 阅读 · 0 评论 -
C练题笔记之:Leetcode-15. 三数之和
题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= ...原创 2022-03-12 18:55:38 · 422 阅读 · 0 评论 -
C练题笔记之:Leetcode-17. 电话号码的字母组合
题目:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提示:0 <= digit...原创 2022-03-12 17:27:21 · 446 阅读 · 1 评论 -
C练题笔记之:Leetcode-2055. 蜡烛之间的盘子
题目:给你一个长桌子,桌子上盘子和蜡烛排成一列。给你一个下标从 0开始的字符串s,它只包含字符'*' 和'|',其中'*'表示一个 盘子,'|'表示一支蜡烛。同时给你一个下标从 0开始的二维整数数组queries,其中queries[i] = [lefti, righti]表示 子字符串s[lefti...righti](包含左右端点的字符)。对于每个查询,你需要找到 子字符串中在 两支蜡烛之间的盘子的 数目。如果一个盘子在 子字符串中左边和右边 都至...原创 2022-03-08 22:54:12 · 141 阅读 · 0 评论 -
C练题笔记之:Leetcode-16. 最接近的三数之和
题目:给你一个长度为 n 的整数数组nums和 一个目标值target。请你从 nums 中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:0提示:3 <= nums...原创 2022-03-05 21:48:25 · 526 阅读 · 0 评论 -
C练题笔记之:Leetcode-55. 跳跃游戏
题目:给定一个非负整数数组nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能...原创 2022-02-27 19:32:46 · 157 阅读 · 0 评论 -
C练题笔记之:Leetcode-63. 不同路径 II
题目:一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。示例 1:输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下..原创 2022-02-20 19:51:20 · 198 阅读 · 0 评论 -
C练题笔记之:Leetcode-12. 整数转罗马数字
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II...原创 2022-02-20 19:23:55 · 203 阅读 · 0 评论 -
C练题笔记之:Leetcode-11. 盛最多水的容器
题目:给定一个长度为 n 的整数数组height。有n条垂线,第 i 条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例 2:输入:...原创 2022-02-20 18:08:08 · 337 阅读 · 0 评论 -
C练题笔记之:Leetcode-8. 字符串转换整数 (atoi)
题目:请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,...原创 2022-02-20 17:15:04 · 110 阅读 · 0 评论 -
C练题笔记之:Leetcode-6. Z 字形变换
题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:...原创 2022-02-19 21:13:38 · 148 阅读 · 0 评论 -
C练题笔记之:Leetcode-5. 最长回文子串
题目:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所有。.原创 2022-02-19 19:28:43 · 251 阅读 · 0 评论 -
C练题笔记之:Leetcode-807. 保持城市天际线
题目:给你一座由 n x n 个街区组成的城市,每个街区都包含一座立方体建筑。给你一个下标从 0 开始的 n x n 整数矩阵 grid ,其中 grid[r][c] 表示坐落于 r 行 c 列的建筑物的 高度 。城市的 天际线 是从远处观察城市时,所有建筑物形成的外部轮廓。从东、南、西、北四个主要方向观测到的 天际线 可能不同。我们被允许为 任意数量的建筑物 的高度增加 任意增量(不同建筑物的增量可能不同) 。 高度为 0 的建筑物的高度也可以增加。然而,增加的建筑物高度 不能影响 从任何主要原创 2022-02-13 20:48:42 · 146 阅读 · 0 评论 -
C练题笔记之:Leetcode-567. 字符串的排列
题目:给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输入:s1 = "ab" s2 = "eidbaooo"输出:true解释:s2 包含 s1 的排列之一 ("ba").示例 2:输入:s1= "ab" s2 = "eidboaoo"输出:false提示:1 <= s1.length, s2.length <= 1原创 2022-01-21 15:58:21 · 632 阅读 · 0 评论 -
C练题笔记之:Leetcode-3. 无重复字符的最长子串
题目:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长...原创 2022-01-19 16:49:56 · 249 阅读 · 0 评论 -
C练题笔记之:Leetcode-19. 删除链表的倒数第 N 个结点
题目:19. 删除链表的倒数第 N 个结点https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/难度中等176给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n =..原创 2022-01-19 15:43:40 · 94 阅读 · 0 评论