
Leetcode数组题合集
Leetcode数组题合集,为准备408数据结构
Cainell
这个作者很懒,什么都没留下…
展开
-
Leetocde 数组题 39. 组合总和 (回溯,剪枝)
39. 组合总和medium方法一:回溯(不剪枝)class Solution {public: void dfs(vector<int>& candidates,int target,vector<vector<int>>& ans,vector<int>& combine,int idx){ if(idx==candidates.size()){ return;原创 2021-05-01 10:20:44 · 226 阅读 · 0 评论 -
leetcode 31 next permutation
31. Next Permutation解法总结:1.从后往前找到第一个破坏单调递增性质的位置(x,y)2.将array[x]与array[y,n)中比array[x]大的最小的数字交换(注意是靠后的)3.将array[y,n)反过来4.别忘了特殊处理整个array本身就是单调递减的情况Codeclass Solution {public: void nextPermutation(vector<int>& nums) { int原创 2021-04-26 22:10:51 · 146 阅读 · 0 评论 -
力扣78 子集
求数组的所有子集比如有数组[1, 2, 3],其元素数量n = 3,将那么其子集为[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]算法(1)使用二叉树来构建含有子集的叶子节点,然后使用中序遍历思路每一层代表一个元素,左子树代表不使用该节点,右子树代表使用该节点,使用中序遍历来获得全部叶子节点,那么获得该数组的子集。void getArr(vector<int> List,原创 2020-12-28 14:52:39 · 163 阅读 · 0 评论 -
Leetcode 数组题合集 18.FourSum
文章目录Difficulty:MediumDescription算法总结实现双指针实现时间复杂度空间复杂度哈希表实现时间复杂度空间复杂度Difficulty:MediumDescriptionGiven an array nums of n integers and an integer target, are there elements a, b, c, and d in nums such that a + b + c + d = target? Find all unique quadrupl原创 2020-06-25 09:16:24 · 278 阅读 · 0 评论 -
Leetcode 数组题集合 9222.按奇偶排序数组II
文章目录难度:简单题目算法法一:双指针C++代码时间复杂度:空间复杂度:运行情况法二:改进双指针思路: 不需要额外空间算法Java代码时间复杂度:0(N)空间复杂度: O(1)运行情况法三:两次遍历思路Java代码时间复杂度空间复杂度运行情况:Tips难度:简单题目给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,原创 2020-06-19 21:05:51 · 244 阅读 · 0 评论 -
Leetcode 数组 1160. 拼写单词
题目给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:words = ["cat","bt","hat","tree"], chars = "atach"输出:6解释: 可以形原创 2020-06-07 14:40:07 · 487 阅读 · 0 评论 -
Leetcode 数组 88. 合并两个有序数组
题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原原创 2020-06-05 12:26:41 · 147 阅读 · 0 评论 -
Leetcode 数组 674.最长连续递增序列
难度:简单题目:给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。限制:数组长度不会超过10000。算法与C代码法一:一次遍历基本思想:一次遍历,判断是否和后续元素发生逆序原创 2020-06-04 12:58:17 · 231 阅读 · 0 评论 -
Leetcode 数组 1051.高度检查器
1051. 高度检查器文章目录1051. 高度检查器题目:C代码题目:学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。注意,当一组学生被选中时,他们之间可以以任何可能的方式重新排序,而未被选中的学生应该保持不动。示例:输入:heights = [1,1,4,2,1,3]输出:3 解释:当前数组:[1,1,4,2,1,3]目标数组:[1,1,1,2,3,4]在下标 2 处(从 0 开始计数)出现 4 vs 1原创 2020-06-04 12:36:55 · 225 阅读 · 0 评论 -
Leetcode 题解 485. 最大连续1的个数
1.题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。2.算法超时代码:class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { vector<原创 2020-05-25 13:32:38 · 277 阅读 · 0 评论 -
Leetcode 剑指offer 03.数组中重复的数字
1.题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 1000002.算法注意题目描述:一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的 范围内,这个 范围 恰好与数组的下标可以一一对应。所以我们可原创 2020-05-25 13:08:09 · 300 阅读 · 0 评论 -
Leetcode 题解 数组1010.总持续时间可被60整除的歌曲
难度: easy题目在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i 和 j 满足 i < j 且有 (time[i] + time[j]) % 60 == 0。示例1:输入:[30,20,150,100,40]输出:3解释:这三对的总持续时间可被 60 整数:(time[0] = 30, time[2] = 150): 总持续时间 180(time[1] = 20, time原创 2020-05-22 13:47:21 · 215 阅读 · 0 评论