10.26-代码留存

Given an array of positive integers nums and a positive integer target, return the minimal length of a 

subarray

 whose sum is greater than or equal to target. If there is no such subarray, return 0 instead.

Example 1:

Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: The subarray [4,3] has the minimal length under the problem constraint.

Example 2:

Input: target = 4, nums = [1,4,4]
Output: 1

Example 3:

Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0

class Solution {

public:

    int minSubArrayLen(int target, vector<int>& nums) {

        sort(nums.begin(),nums.end());

        int length=0;

        int target1=target;

        int sign=nums.size()-1;

        for(int i=nums.size()-1;i>=0;i--){

            if(target1==nums[i]){

                if(length==0)

                    return 1;

                else{

                    return length+1;

                }

            }

            if(target1<nums[i]){

                if(length==0)

                    continue;

                else{

                    i=sign-1;

                    sign--;

                    target1=target;

                    length=0;

                    continue;

                }

            }

            if(target1>nums[i]){

                length++;

                target1-=nums[i];

                continue;

            }

        }

        if(target1==0)

            return length;

        else

            return 0;

    }

};

仅为代码留存使用,代码存在错误需要修正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值