![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 57
yzhyzhyzhwhyyy
这个作者很懒,什么都没留下…
展开
-
玩转算法面试---习题LeetCode80. 删除排序数组中的重复项 II
题目描述:给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDupl原创 2021-01-07 11:04:41 · 106 阅读 · 1 评论 -
玩转算法面试---习题LeetCode26 删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组原创 2021-01-06 21:35:51 · 74 阅读 · 0 评论 -
玩转算法面试---习题LeetCode27 移除元素
题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,2,2,3,原创 2021-01-06 20:57:17 · 82 阅读 · 0 评论 -
玩转算法面试:数组问题1
LeetCode283 移动零facebook Bloomberg面试题题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数思路一:将数组中的非0元素取出,然后将取出的元素填补到原先的数组中,最后将数组末尾元素赋值为0;c++代码class Solution {public: void原创 2021-01-06 19:46:10 · 111 阅读 · 2 评论 -
LeetCode 771 宝石与石头 c++版
题目描述给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。思路使用set记录宝石的种类,然原创 2020-12-26 17:18:56 · 118 阅读 · 0 评论 -
剑指offer58—II 左旋转字符串 c++
题目字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <= 10000思路定义一个字符串,先将s中原创 2020-12-26 17:03:22 · 125 阅读 · 0 评论 -
leetcode 455. 分发饼干 c++版
leetcode 455. 分发饼干 c++版题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释原创 2020-12-25 16:33:25 · 288 阅读 · 0 评论 -
LeetCode103. 二叉树的锯齿形层序遍历 C++版
题目给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回锯齿形层序遍历如下:[[3],[20,9],[15,7]]思路本题是二叉树的层序遍历的变形,区别在于本题是一行从左到右遍历,下一行从右到左遍历,交叉往返的之字形遍历。可以利用层序遍历,增加一个变量cnt来记录当前的层数(cnt从0开始),将所有的奇原创 2020-12-23 15:21:41 · 111 阅读 · 0 评论 -
力扣387. 字符串中的第一个唯一字符 C++版
**387. 字符串中的第一个唯一字符**描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2分析找出第一个不重复的字符,可以使用map记录字符串中字符的出现次数,遍历一遍得到每个字符出现的次数,然后在查找第一个map的值为1时的字符。c++代码class Solution {public: int firstUniqChar(string s) {原创 2020-12-23 10:44:01 · 124 阅读 · 0 评论