add some passed codes
This commit is contained in:
parent
c8edbff831
commit
3630da98a0
36
209-240524-pass/main.cpp
Normal file
36
209-240524-pass/main.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include<iostream>
|
||||||
|
#include<vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
int minSubArrayLen(int target, vector<int>& nums) {
|
||||||
|
vector<int> sub;
|
||||||
|
sub.push_back(0);
|
||||||
|
int num_sum = 0;
|
||||||
|
for(int i = 0 ; i < nums.size() ; i++){
|
||||||
|
int num = nums[i];
|
||||||
|
sub.push_back(num_sum + num);
|
||||||
|
num_sum += num;
|
||||||
|
}
|
||||||
|
if(num_sum < target){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
for(int length = 1 ; length < nums.size() + 1 ; length ++){
|
||||||
|
for(int i = 0 ; i <= nums.size() - length;i++){
|
||||||
|
int rlt = sub[i+length] - sub[i];
|
||||||
|
if(rlt >= target){
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
Solution *sol = new Solution();
|
||||||
|
vector<int>tmp = {2, 3, 1 ,4, 2 ,3};
|
||||||
|
cout<<sol->minSubArrayLen(7,tmp)<<endl;
|
||||||
|
}
|
42
209-240524-pass/main.py
Normal file
42
209-240524-pass/main.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
class Solution1(object):
|
||||||
|
def minSubArrayLen(self, target, nums):
|
||||||
|
"""
|
||||||
|
:type target: int
|
||||||
|
:type nums: List[int]
|
||||||
|
:rtype: int
|
||||||
|
"""
|
||||||
|
sub = []
|
||||||
|
sub.append(0)
|
||||||
|
num_sum = 0
|
||||||
|
for ind, num in enumerate(nums):
|
||||||
|
sub.append(num_sum + num)
|
||||||
|
num_sum += num
|
||||||
|
print(nums)
|
||||||
|
for length in range(1, len(nums) + 1):
|
||||||
|
print(length)
|
||||||
|
for i in range(0, len(nums) - length + 1):
|
||||||
|
rlt = sub[ i + length ] - sub[i]
|
||||||
|
print(rlt, length, i)
|
||||||
|
if rlt >= target:
|
||||||
|
return length
|
||||||
|
return 0
|
||||||
|
class Solution:
|
||||||
|
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
|
||||||
|
if sum(nums) < target:
|
||||||
|
return 0
|
||||||
|
left_idx = 0
|
||||||
|
s = 0 # sum
|
||||||
|
ans = len(nums)
|
||||||
|
|
||||||
|
for right_idx, val in enumerate(nums):
|
||||||
|
s += val
|
||||||
|
while s >= target:
|
||||||
|
s -= nums[left_idx]
|
||||||
|
ans = min(ans, right_idx - left_idx + 1)
|
||||||
|
left_idx += 1
|
||||||
|
return ans
|
||||||
|
|
||||||
|
print(Solution().minSubArrayLen(7, [2,3,1,2,4,3]))
|
||||||
|
print(Solution().minSubArrayLen(4, [1, 1, 4]))
|
||||||
|
print(Solution().minSubArrayLen(11, [1, 1, 1, 1]))
|
||||||
|
print(Solution().minSubArrayLen(15, [1, 2, 3, 4, 5]))
|
Loading…
Reference in New Issue
Block a user