![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode-数组
进击的CV
一起聊聊图像处理
展开
-
LeetCode-数组-41 最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。输入:[−2,2,−3,4,−1,2,1,−5,3] 输出:6 解释:符合要求的子数组为[4,−1,2,1],其最大和为 6解法1: 暴力求解int max=-10000; int i=0; while(i<nums.size()) { int sum=0; int j=i; while(j<nums.size()) { sum+=nums[j]; if(sum>max) max=s原创 2020-06-24 23:55:15 · 151 阅读 · 0 评论 -
LeetCode-数组-283 移动0
移动0给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]思路很简单,使用使用两个索引lastIndex和curIndex,curIndex从后向前遍历直到其元素为0,然后根据lastIndex与curIndex之间的差值,将元素前移。public void moveZeroes(int[] nums) { int curIndex = nums.length - 1原创 2020-06-24 23:40:50 · 103 阅读 · 0 评论 -
LeetCode-数组-15 三数之和
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。样例例1:输入:[2,7,11,15] 输出:[]例2:输入:[-1,0,1,2,-1,-4] 输出:[[-1, 0, 1],[-1, -1, 2]]注意事项在三元组(a, b, c),要求a <= b <= c。vector<vector<int> > threeSum(vector<int> &nums)原创 2020-06-24 23:37:43 · 103 阅读 · 0 评论 -
LeetCode-数组-27 求数组中第二大的数
移除元素给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [...原创 2020-06-23 19:39:28 · 389 阅读 · 0 评论 -
LeetCode-数组- 求数组中第二大的数
可以采用先排序,再取第二大的数的方法,采用遍历一次的方法:public int secondMax(int[] nums) { // write your code here int max = 0; int secondMax = 0; //初始化max与secondMax if(nums[0] >= nums[1]) { max = nums[0]; secondMax = nums[1]; } else { max = nums[1]; secondMa原创 2020-06-23 19:35:21 · 856 阅读 · 0 评论 -
LeetCode-数组-122 买卖股票的最佳时机II
买卖股票的最佳时机||给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3..原创 2020-06-23 19:22:41 · 94 阅读 · 0 评论 -
LeetCode-数组-121 买卖股票的最佳时机
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1].原创 2020-06-23 19:17:08 · 113 阅读 · 2 评论 -
LeetCode-数组-39 恢复旋转数组排序
恢复旋转数组排序:[4,5,1,2,3] - > [1,2,3,4,5]void recoverRotatedSortedArray(vector<int> &nums) { // write your code here // 4 5 1 2 3 -> 5 4 1 2 3 -> 5 4 3 2 1 ->1 2 3 4 5 int sz = nums.size(); if(sz == 0 || sz == 1) return; in原创 2020-06-23 19:12:44 · 115 阅读 · 0 评论 -
LeetCode-数组-1002 有序数组的平方
查找常用字符给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:["bella","label","roller"]输出:["e","l","l"]示例 2:输入:["cool","lock","cook"]输出:["c","o"]思路:给每组字符串,建立26维度数字,统计a-z出现个个数,最后原创 2020-06-23 19:08:51 · 107 阅读 · 0 评论 -
LeetCode-数组-922 有序数组的平方
按奇偶排序数组给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路:用i指向0,j指向数组末尾如果A[i]是奇数,A[j]是偶数,就交换A[i]是偶数就i++;A[j]是奇数就j--vector<int> sortArrayByParity(.原创 2020-06-23 19:05:56 · 121 阅读 · 0 评论 -
LeetCode-双指针-905.按奇偶排序数组
给定一个非负整数数组A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路:用i指向0,j指向数组末尾如果A[i]是奇数,A[j]是偶数,就交换A[i]是偶数就i++;A[j]是奇数就j--解答:vector<int> sortArrayByParity(vector&.原创 2020-06-21 11:17:48 · 154 阅读 · 0 评论 -
LeetCode-数组-977 有序数组的平方
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]方法一: 暴力求解: 先全部平方,然后再 排序, vector<int> a 的默认排序函数是 sort(a.begin(),a.end())class Solution{public: vector<原创 2020-06-21 11:15:15 · 184 阅读 · 0 评论 -
LeetCode-数组-922. 按奇偶排序数组Ⅱ
给定一个非负整数数组A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。题中排序的意思是:奇数位置上是奇数,偶数位置上是偶数就可以了vector<int> sortArrayByParityII(ve..原创 2020-06-21 11:04:55 · 134 阅读 · 0 评论 -
LeetCode-数组-628. 三个数的最大乘积
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积示例1:输入: [1,2,3]输出: 6示例2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。分析:主要就是考虑负数的情况,第一种:给定的数全是负数,(最大的为最后3个相乘)第二种:负数和正数都有(前两个数乘以...原创 2020-06-21 11:00:14 · 181 阅读 · 0 评论 -
LeetCode-数组-35.搜索插入位置
解答C++/** * Search Insert Position * 搜索插入位置*/#include <stdio.h>int binary_search(int A[], int n, int key) { int low = 0; int high = n-1; while (low <= high) { int mid = low +(high-low)/2; if (A[mid] == key..原创 2020-06-21 10:55:03 · 89 阅读 · 0 评论