C语言刷题笔记:leetcode-简单
文章平均质量分 53
将自己在leetCode上刷的题记录下,以便日后复习与提高
月团子
我还没有资格放松自己不练,记录下自己做过的,为的是自己能够不忘记,能够以此督促自己吧!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C练题笔记之:Leetcode-303. 区域和检索 - 数组不可变
给定一个整数数组 nums,处理以下类型的多个查询:计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left原创 2022-08-21 20:56:55 · 270 阅读 · 0 评论 -
C练题笔记之:Leetcode-1455. 检查单词是否为句中其他单词的前缀
给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1。原创 2022-08-21 01:33:25 · 246 阅读 · 0 评论 -
C练题笔记之:Leetcode-第 85 场双周赛---6156. 得到 K 个黑块的最少涂色次数
给你一个长度为n下标从开始的字符串blocks,blocks[i]要么是'W'要么是'B',表示第i块的颜色。字符'W'和'B'分别表示白色和黑色。给你一个整数k,表示想要黑色块的数目。每一次操作中,你可以选择一个白色块将它黑色块。请你返回至少出现连续k个黑色块的操作次数。3一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。得到 blocks = "BBBBBBBWBW"。可以证明无法用少于 3 次操作得到 7 个连续的黑块。所以我们返回 3。0。原创 2022-08-21 00:46:13 · 560 阅读 · 0 评论 -
C练题笔记之:Leetcode-136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode.cn/problems/single-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-08-20 22:06:44 · 138 阅读 · 0 评论 -
C练题笔记之:Leetcode-1184. 公交站间的距离
leetcode 每日一题 1184. 公交站间的距离原创 2022-07-24 16:56:49 · 290 阅读 · 0 评论 -
C练题笔记之:Leetcode-812. 最大三角形面积
题目:给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释:这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意:3 <= points.length <= 50.不存在重复的点。-50 <= points[i][j] <= 50.结果误差值在10^-6以内都认为是正确答案。来源:力扣(LeetC...原创 2022-05-15 17:16:09 · 173 阅读 · 0 评论 -
C练题笔记之:Leetcode-42. 接雨水
题目:给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2 + 1 = 6原创 2022-04-18 01:08:01 · 155 阅读 · 0 评论 -
C练题笔记之:Leetcode-806. 写字符串需要的行数
题目:我们要把给定的字符串 S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你的答案作为长度为2的整数列表返回。示例 1:输...原创 2022-04-18 01:05:24 · 92 阅读 · 0 评论 -
C练题笔记之:Leetcode-804. 唯一摩尔斯密码词
题目:国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:'a' 对应 ".-" ,'b' 对应 "-..." ,'c' 对应 "-.-." ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..原创 2022-04-10 15:27:49 · 565 阅读 · 0 评论 -
C练题笔记之:Leetcode-762. 二进制表示中质数个计算置位
题目:给你两个整数left和right ,在闭区间 [left, right]范围内,统计并返回 计算置位位数为质数 的整数个数。计算置位位数 就是二进制表示中 1 的个数。例如, 21的二进制表示10101有 3 个计算置位。示例 1:输入:left = 6, right = 10输出:4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 是质数)9 -> 1001 (2 个计算置位,2 是质数)...原创 2022-04-05 16:25:49 · 832 阅读 · 0 评论 -
C练题笔记之:Leetcode-393. UTF-8 编码验证
题目:你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”...原创 2022-03-19 23:27:14 · 142 阅读 · 0 评论 -
C练题笔记之:Leetcode-590. N 叉树的后序遍历
题目:给定一个 n叉树的根节点root,返回 其节点值的 后序遍历 。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[5,6,3,2,4,1]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null...原创 2022-03-12 15:08:03 · 5892 阅读 · 0 评论 -
C练题笔记之:Leetcode-145. 二叉树的后序遍历
题目:给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。示例 1:输入:root = [1,null,2,3]输出:[3,2,1]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]提示:树中节点的数目在范围 [0, 100] 内-100 <= Node.val <= 100来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary.原创 2022-03-12 14:43:14 · 838 阅读 · 0 评论 -
C练题笔记之:Leetcode-521. 最长特殊序列 Ⅰ
题目:给你两个字符串a和b,请返回 这两个字符串中 最长的特殊序列的长度。如果不存在,则返回 -1。「最长特殊序列」定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。字符串s的子序列是在从s中删除任意数量的字符后可以获得的字符串。例如,"abc" 是 "aebdc" 的子序列,因为删除 "aebdc" 中斜体加粗的字符可以得到 "abc" 。 "aebdc" 的子序列还包括 "aebdc" 、 "aeb" 和 "" (空字符串)。示例...原创 2022-03-05 19:17:48 · 427 阅读 · 0 评论 -
C练题笔记之:Leetcode-717. 1比特与2比特字符
题目:有两种特殊字符:第一种字符可以用一个比特0来表示第二种字符可以用两个比特(10或11)来表示、给定一个以 0 结尾的二进制数组bits,如果最后一个字符必须是一位字符,则返回 true 。示例1:输入: bits = [1, 0, 0]输出: true解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例2:输入: bits = [1, 1, 1, 0]输出: false解释: 唯一的编码方式是两比特字符和两比...原创 2022-02-20 16:00:13 · 180 阅读 · 0 评论 -
C练题笔记之:Leetcode-2160. 拆分数位后四位数字的最小和
题目:给你一个四位正整数num。请你使用 num中的 数位 ,将num拆成两个新的整数new1和new2。new1 和new2中可以有前导 0,且num中 所有数位都必须使用。比方说,给你num = 2932,你拥有的数位包括:两个2,一个9和一个3。一些可能的[new1, new2]数对为[22, 93],[23, 92],[223, 9] 和[2, 329]。请你返回可以得到的new1和 new2的 最小和。示例 1...原创 2022-02-19 15:53:11 · 584 阅读 · 0 评论 -
C练题笔记之:Leetcode-1929. 数组串联
题目:给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有0 <= i < n 的 i ,满足下述所有要求:ans[i] == nums[i]ans[i + n] == nums[i]具体而言,ans 由两个 nums 数组 串联 形成。返回数组 ans 。示例 1:输入:nums = [1,2,1]输出:[1,2,1,1,2,1]解释:数组 ans 按下述方式形成:- ans = .原创 2022-02-13 19:58:51 · 285 阅读 · 0 评论 -
C练题笔记之:Leetcode-1920. 基于排列构建数组
题目:给你一个 从 0 开始的排列 nums(下标也从 0 开始)。请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans[i] = nums[nums[i]] 。返回构建好的数组 ans 。从 0 开始的排列 nums 是一个由 0 到nums.length - 1(0 和 nums.length - 1 也包含在内)的不同整数组成的数组。示例 1:输入:nums = [0,2,1,5,3,4]输出:[0.原创 2022-02-13 19:40:18 · 210 阅读 · 0 评论 -
C练题笔记之:Leetcode-1189. “气球” 的最大数量
题目:给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。示例 1:输入:text = "nlaebolko"输出:1示例 2:输入:text = "loonbalxballpoon"输出:2示例 3:输入:text = "leetcode"输出:0提示:1 <= text.length <.原创 2022-02-13 19:22:46 · 166 阅读 · 0 评论 -
C练题笔记之:Leetcode-733. 图像渲染
题目:有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。最后返回经...原创 2022-01-21 16:48:20 · 125 阅读 · 0 评论 -
C练题笔记之:Leetcode-876. 链表的中间结点
题目:给定一个头结点为 head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.原创 2022-01-19 14:56:36 · 213 阅读 · 0 评论 -
C练题笔记之:Leetcode-557. 反转字符串中的单词 III
题目:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。结果:解题思路:用两个指针:i 记录单词的开头,j 记录单词的结尾。用新的下表n,从 单词结尾到 i 一个个复制过去。代码:char * reverse.原创 2022-01-19 11:22:28 · 362 阅读 · 0 评论 -
C练题笔记之:Leetcode-344. 反转字符串
题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]提示:1 <= s.length .原创 2022-01-18 18:03:32 · 145 阅读 · 0 评论 -
C练题笔记之:Leetcode-167. 两数之和 II - 输入有序数组
题目:给定一个已按照 非递减顺序排列的整数数组numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。示例 1:输入:numbers = [2,7,11...原创 2022-01-18 17:46:01 · 253 阅读 · 0 评论 -
C练题笔记之:Leetcode-283. 移动零
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。结果:解题思路:把非0的数字先按照原有.原创 2022-01-18 11:38:30 · 91 阅读 · 0 评论 -
C练题笔记之:Leetcode-977. 有序数组的平方
题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104原创 2022-01-17 15:30:25 · 106 阅读 · 0 评论 -
C练题笔记之:Leetcode-35. 搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5.原创 2022-01-17 11:23:23 · 101 阅读 · 0 评论 -
C练题笔记之:Leetcode-278. 第一个错误的版本
题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输入:n..原创 2022-01-17 11:05:01 · 121 阅读 · 0 评论 -
C练题笔记之:Leetcode-704. 二分查找
题目:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设...原创 2022-01-17 10:19:16 · 112 阅读 · 0 评论 -
C练题笔记之:Leetcode-面试题 01.03. URL化
题目:URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例 1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例 2:输入:" ", 5输出:"%20%20%20%20%20"提示:字符串长度在 [0, 500000] 范围内。来源:力扣(Lee...原创 2022-01-17 09:41:24 · 454 阅读 · 0 评论 -
C练题笔记之:Leetcode-125. 验证回文串
题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串提示:1 <= s.length <= 2 * 105字符串.原创 2022-01-11 11:17:15 · 190 阅读 · 0 评论 -
C练题笔记之:Leetcode-69. Sqrt(x)
题目:给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。提示:0 <= x <= 231 - 1来源:力扣(LeetCode)链原创 2022-01-10 17:10:52 · 394 阅读 · 0 评论 -
C练题笔记之:Leetcode-67. 二进制求和
题目:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。来源:力扣(LeetCode)链接:htt.原创 2022-01-10 16:32:04 · 275 阅读 · 0 评论 -
C练题笔记之:Leetcode-121. 买卖股票的最好时机
题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。.原创 2022-01-06 16:04:50 · 136 阅读 · 0 评论 -
C练题笔记之:Leetcode-1114. 按序打印
题目:给你一个类:public class Foo {public void first() { print("first"); }public void second() { print("second"); }public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个Foo实例。线程 A 将会调用 first() 方法线程 B 将会调用second() 方法线程 C 将会调用 third() 方法...原创 2022-01-06 15:05:09 · 767 阅读 · 0 评论 -
C练题笔记之:Leetcode-70. 爬楼梯
题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶来源:力扣(LeetCode)链接:https://le...原创 2022-01-06 10:36:12 · 631 阅读 · 0 评论 -
C练题笔记之:Leetcode-58. 最后一个单词的长度
题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = "luffy is still joyboy"输出:6提示:1 <= s.length <= 104s 仅有英文字母...原创 2022-01-04 17:03:51 · 329 阅读 · 0 评论 -
C练题笔记之:Leetcode-28. 实现 strStr()
题目:实现strStr()函数。给你两个字符串haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回-1 。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相符。示例 1:输入:ha...原创 2022-01-04 16:50:42 · 159 阅读 · 0 评论 -
C练题笔记之:Leetcode-14. 最长公共前缀
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成来源.原创 2022-01-04 15:41:51 · 251 阅读 · 0 评论 -
C练题笔记之:Leetcode-13. 罗马数字转整数
题目:罗马数字包含以下七种字符: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-01-04 14:29:20 · 260 阅读 · 0 评论
分享