时间是让人措不及防的东西。大一悄无声息的流逝,告别了大一的懵懂,迎来了紧张的大二。
我们都在为自己心中的那片海而奋斗,不敢停歇,更不能停息。
目录
第一题:数组中两元素的最大乘积
题目链接:https://leetcode-cn.com/problems/maximum-product-of-two-elements-in-an-array/
解题代码:
class Solution {
public:
int maxProduct(vector<int>& nums) {
int max1=0;
int max2=0;
for(int i=0;i<nums.size();i++){
if(nums[i]>max1){
max2=max1;
max1=nums[i];
}
else if(nums[i]>max2)max2=nums[i];
}
return (max1-1)*(max2-1);
}
};
第二题:最大连续1的个数
题目链接:https://leetcode-cn.com/problems/max-consecutive-ones/
解题代码:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int maxlength=0;
int curlength=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==1)curlength++;
else if(nums[i]==0){
curlength=0;
}
maxlength=max(curlength,maxlength);
}
return maxlength;
}
};
第三题:寻找旋转排序数组中的最小值
题目链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/submissions/
解题代码:
class Solution {
public:
int findMin(vector<int>& nums) {
int left=0;
int right=nums.size()-1;
while(left<=right){
int middle=left+(right-left)/2;
if(nums[middle]<nums[right]){
right=middle;
}
else {
left=middle+1;
}
}
return nums[right];
}
};
第四题:寻找旋转排序数组中的最小值(二)
题目链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
解题代码:
class Solution {
public:
int findMin(vector<int>& nums) {
int left=0;
int right=nums.size()-1;
while(left<=right){
int middle=left+(right-left)/2;
if(nums[middle]>nums[right])left=middle+1;
else if(nums[middle]<nums[right])right=middle;
else --right;
}
return nums[left];
}
};
第五题:第三大的数
题目链接:https://leetcode-cn.com/problems/third-maximum-number/submissions/
解题代码:
class Solution {
public:
int thirdMax(vector<int>& nums) {
long long max1=LONG_LONG_MIN;
for(int i=0;i<nums.size();i++){
if(max1<nums[i]){
max1=nums[i];
}
}
long long max2=LONG_LONG_MIN;
for(int i=0;i<nums.size();i++){
if(max2<nums[i]&&nums[i]!=max1){
max2=nums[i];
}
}
long long max3=LONG_LONG_MIN;
for(int i=0;i<nums.size();i++){
if(max3<nums[i]&&nums[i]!=max1&&nums[i]!=max2){
max3=nums[i];
}
}
if(max3==LONG_LONG_MIN)return max1;
return max3;
}
};
第六题:三个数的最大乘积
题目链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers/submissions/
解题代码:
class Solution {
public:
int maximumProduct(vector<int>& nums) {
sort(nums.begin(),nums.end());
return max(nums[0]*nums[1]*nums[nums.size()-1],nums[nums.size()-1]*nums[nums.size()-2]*nums[nums.size()-3]);
}
};
第7题:删除有序数组中的重复项
题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/submissions/
解题代码:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==0)return 0;
int slow=1;
int fast=1;
for(;fast<nums.size();fast++){
if(nums[fast]!=nums[fast-1]){
nums[slow]=nums[fast];
slow++;
}
}
return slow;
}
};
第八题:存在重复元素
题目链接:https://leetcode-cn.com/problems/contains-duplicate/
解题代码:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size()-1;i++){
if(nums[i]==nums[i+1])return true;
}
return false;
}
};
第九题:移除元素
题目链接:https://leetcode-cn.com/problems/remove-element/
解题代码:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
for(int i=0;i<nums.size();i++){
if(nums[i]==val)nums[i]=51;
}
sort(nums.begin(),nums.end());
int length=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==51)break;
length++;
}
return length;
}
};
第十题:加一
题目链接:https://leetcode-cn.com/problems/plus-one/submissions/
解题代码:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int next=1;
for(int i=digits.size()-1;i>=0;i--){
digits[i]=digits[i]+next;
if(digits[i]==10){
digits[i]=0;
next=1;
}
else return digits;
}
vector<int>arr;
arr.push_back(1);
for(int i=0;i<digits.size();i++){
arr.push_back(digits[i]);
}
return arr;
}
};
已知乾坤大,犹怜草木青。这里北风,星河辽阔,一路相伴!