1process.stdin.resume(); 2process.stdin.setEncoding('utf-8'); 3let input = ''; 4process.stdin.on('data', (data) => { 5 input += data; 6}); 7process.stdin.on('end', () => { 8 let inputArray = input.split('\n'); 9 let target = parseInt(inputArray[0], 10); 10 let nums = inputArray[1].split(' ').map(Number); 11 12 function findMinSubArrayLen(target, nums) { 13 let minLength = Infinity; 14 let left = 0; 15 let sum = 0; 16 17 for (let right = 0; right < nums.length; right++) { 18 sum += nums[right]; 19 20 while (sum >= target) { 21 minLength = Math.min(minLength, right - left + 1); 22 sum -= nums[left]; 23 left++; 24 } 25 } 26 27 return minLength === Infinity ? 0 : minLength; // 如果找不到符合条件的子串,返回0(理论上应该总存在,这里为了防止意外情况) 28 } 29 30 let result = findMinSubArrayLen(target, nums); 31 console.log(result); 32 33 process.exit(); 34});
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语