add some passed codes

This commit is contained in:
mhrooz 2024-05-24 22:56:40 +02:00
parent c8edbff831
commit 3630da98a0
2 changed files with 78 additions and 0 deletions

36
209-240524-pass/main.cpp Normal file
View 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
View 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]))