大二第一周,怒刷力扣十道

时间是让人措不及防的东西。大一悄无声息的流逝,告别了大一的懵懂,迎来了紧张的大二。

我们都在为自己心中的那片海而奋斗,不敢停歇,更不能停息。

目录

第一题:数组中两元素的最大乘积

第二题:最大连续1的个数

第三题:寻找旋转排序数组中的最小值

 第四题:寻找旋转排序数组中的最小值(二)

第五题:第三大的数

第六题:三个数的最大乘积

第7题:删除有序数组中的重复项

第八题:存在重复元素

第九题:移除元素

第十题:加一


第一题:数组中两元素的最大乘积

题目链接: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;
    }
};

已知乾坤大,犹怜草木青。这里北风,星河辽阔,一路相伴!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值