Leetcode
Vanderbiol
这个作者很懒,什么都没留下…
展开
-
Leetcode-重塑矩阵C++实现
思路:先判断能否成功转换,不能直接返回原矩阵,如果能的话逐行遍历矩阵存储在vectortemp中,然后当temp.size为c时temp存储到res中,并清空temp重新开始。在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。否则,输出原始矩阵。原创 2023-08-03 17:09:59 · 231 阅读 · 0 评论 -
Leetcode-数组拆分C++实现
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。思路:说的乱七八糟,其实就是排序,然后隔位相加就完了。返回该 最大总和。原创 2023-08-03 14:55:27 · 274 阅读 · 0 评论 -
Leetcode-N叉树的最大深度C++实现
递归,先判断当前节点为空和无子树的情况,然后逐个判断子树深度并记录最大值,最后返回的时候要加上当前节点的深度1。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。给定一个 N 叉树,找到其最大深度。原创 2023-07-29 20:53:36 · 87 阅读 · 0 评论 -
Leetcode-反转字符串中的单词IIIC++实现
你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。笨死了笨死了,状态不好,感觉是写的最烂的一道题。空格切分,每个单词单独反转,去掉开头的空格。s 包含可打印的 ASCII 字符。s 中的所有单词都用一个空格隔开。s 不包含任何开头或结尾空格。s 里 至少 有一个词。原创 2023-07-29 20:07:14 · 88 阅读 · 0 评论 -
Leetcode-学生出勤记录IC++实现
给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。学生 不会 存在 连续 3 天或 连续 3 天以上的迟到('L')记录。如果学生可以获得出勤奖励,返回 true;否则,返回 false。两个标志分别记录A和L的次数,L若不是连续则重新开始计数。按 总出勤 计,学生缺勤('A')严格 少于两天。'P':Present,到场。'A':Absent,缺勤。'L':Late,迟到。原创 2023-07-29 19:46:27 · 94 阅读 · 0 评论 -
Leetcode-反转字符串ⅡC++实现
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。最笨的方法,按三种情况去判断,然后根据每种情况去实现。如果剩余字符少于 k 个,则将剩余字符全部反转。原创 2023-07-24 15:24:29 · 95 阅读 · 0 评论 -
Leetcode-二叉搜索树的最小绝对差C++实现
二叉搜索树中序遍历得到有序序列(代码写错了,应该Inorder不是preorder),然后插值最小的两个节点在序列中一定相邻,所以计算相邻节点的最小差值即可。差值是一个正数,其数值等于两值之差的绝对值。给你一个二叉搜索树的根节点。原创 2023-07-24 14:35:06 · 62 阅读 · 0 评论 -
Leetcode-最长特殊序列ⅠC++实现
例如,"abc" 是 "aebdc" 的子序列,因为删除 "aebdc" 中斜体加粗的字符可以得到 "abc"。"aebdc" 的子序列还包括 "aebdc" 、 "aeb" 和 "" (空字符串)。给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在,则返回 -1。「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列)。字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。评论区说了这题应该是搞笑难度。原创 2023-07-24 14:10:05 · 50 阅读 · 0 评论 -
Leetcode-斐波那契额数列C++实现
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(n) = F(n - 1) + F(n - 2),其中 n > 1。给定 n ,请计算 F(n)。原创 2023-07-24 13:46:52 · 60 阅读 · 0 评论 -
Leetcode-相对名次C++实现
运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同。使用长度为 n 的数组 answer 返回获奖,其中 answer[i] 是第 i 位运动员的获奖情况。从名次第 4 到第 n 的运动员,只能获得他们的名次编号(即,名次第 x 的运动员获得编号 "x")。名次第 2 的运动员获银牌 "Silver Medal"。原创 2023-07-24 13:44:05 · 49 阅读 · 0 评论 -
Leetcode-下一个更大元素C++实现
对于每个 0原创 2023-07-21 17:02:45 · 58 阅读 · 0 评论 -
Leetcode-构造矩形C++实现
作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。返回一个 数组 [L, W],其中 L 和 W 是你按照顺序设计的网页的长度和宽度。宽度 W 不应大于长度 L ,换言之,要求 L >= W。长度 L 和宽度 W 之间的差距应当尽可能小。你设计的矩形页面必须等于给定的目标面积。原创 2023-07-21 16:31:16 · 58 阅读 · 0 评论 -
Leetcode-最大连续1的个数C++实现
记录连续1的数量,放入容器里,然后找出容器里最大的数返回。, 计算其中最大连续。原创 2023-07-21 16:19:54 · 166 阅读 · 0 评论 -
Leetcode-密钥格式化C++实现
我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了第一组,它可以比 k 短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。给定一个许可密钥字符串 s,仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n + 1 组。你也会得到一个整数 k。有点笨,可能消耗比较大,先删除,再反转,再插入,再反转。返回 重新格式化的许可密钥。原创 2023-07-21 15:47:14 · 73 阅读 · 0 评论 -
Leetcode-岛屿的周长C++实现
岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。直接遍历,然后遇到相邻的直接-2,因为两个各自都少了一条边所以-2.原创 2023-07-21 11:30:34 · 77 阅读 · 0 评论 -
Leetcode-重复的子字符串C++实现
检查是否可以通过由它的一个子串重复多次构成。给定一个非空的字符串。原创 2023-07-21 11:10:38 · 110 阅读 · 0 评论 -
Leetcode-分发饼干C++实现
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。原创 2023-07-21 10:38:28 · 60 阅读 · 0 评论 -
Leetcode-找到所有数组中小时的数字C++实现
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。新建一个与nums大小一致的vector,将出现的数字对应位置置为-1,然后遍历copy,如果存在不为-1的位置则说明缺失该位置所对应的数字。原创 2023-07-20 18:27:02 · 43 阅读 · 0 评论 -
Leetcode-排列硬币
你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。原创 2023-07-20 18:02:27 · 58 阅读 · 0 评论 -
Leetcode-字符串中的单词数C++实现
因为题目中符号后也会有空格,所以可以根据空格来切分,只要碰到一个空格,且空格后为字符就可以+1,要注意判断第一个位置是空格还是字符,如果是字符就从1开始,是空格就从0开始。统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。原创 2023-07-20 17:42:48 · 189 阅读 · 0 评论 -
Leetcode-第三大的数C++实现
先从大到小排序,然后遍历,每发现一个不同的数flag+1,当flag=3的时候是第三大的数,如果循环完了flag还小于3说明不存在第三大的数,返回最大的数。如果不存在,则返回数组中最大的数。给你一个非空数组,返回此数组中。原创 2023-07-20 10:22:27 · 147 阅读 · 0 评论 -
Leetcode-FizzBuzzC++实现
answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。answer[i] == "Fizz" 如果 i 是 3 的倍数。answer[i] == "Buzz" 如果 i 是 5 的倍数。原创 2023-07-20 10:01:58 · 118 阅读 · 0 评论 -
Leetcode-最长回文串C++实现
map记录次数,然后判断次数的奇偶性,偶数直接加,奇数第一次遇到时直接加,再遇到+(次数-1)。给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串。在构造过程中,请注意 区分大小写。比如 "Aa" 不能当做一个回文字符串。原创 2023-07-19 17:41:30 · 50 阅读 · 0 评论 -
Leetcode-判断子序列C++实现
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。给定字符串 s 和 t ,判断 s 是否为 t 的子序列。原创 2023-07-19 17:41:52 · 57 阅读 · 0 评论 -
Leetcode-判断子序列C++实现
两个指针分别指向s和t的初始,逐个进行比对,当发现比对不上且j未越界时对t的指针j进行++,找到下一个能够和s[i]匹配上的t[j],此时如果j++未越界或者i,j都到了最后一位的话进行++操作。当匹配结束且没有中断返回false说明匹配成功,return true;字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。给定字符串 s 和 t ,判断 s 是否为 t 的子序列。原创 2023-07-18 17:09:48 · 55 阅读 · 0 评论 -
Leetcode-回文链表C++实现
3.比较前半部分和后半部分链表是否相同。,请你判断该链表是否为回文链表。2.原地反转后半部分链表。思路:先用栈实现一遍,简单,但是得遍历两边。给你一个单链表的头节点。把链表的找中间和反转两个基本功走一遍。思路:1.找到链表的中间节点。原创 2023-07-12 19:05:32 · 132 阅读 · 1 评论 -
Leetcode-反转二叉树C++实现
翻转这棵二叉树,并返回其根节点。使用临时节点变量,递归实现。给你一棵二叉树的根节点。原创 2023-07-12 15:45:15 · 105 阅读 · 1 评论 -
Leetcode-存在重复元素 IIC++实现
如果存在,返回 true;思路:从左到右遍历数组,如果当前元素哈希表里没有||有该元素但不符合abs(i-j)原创 2023-07-12 11:16:56 · 97 阅读 · 1 评论