diff --git a/209-240524-pass/main.cpp b/209-240524-pass/main.cpp new file mode 100644 index 0000000..68c9e8e --- /dev/null +++ b/209-240524-pass/main.cpp @@ -0,0 +1,36 @@ +#include +#include + +using namespace std; + +class Solution { +public: + int minSubArrayLen(int target, vector& nums) { + vector 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(); + vectortmp = {2, 3, 1 ,4, 2 ,3}; + cout<minSubArrayLen(7,tmp)<= 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])) \ No newline at end of file