最少连续下标数

最少连续下标数

 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});
process.stdin.resume(); process.stdin.setEncoding('utf-8'); let input = ''; process.stdin.on('data', (data) => { input += data; }); process.stdin.on('end', () => { let inputArray = input.split('\n'); let target = parseInt(inputArray[0], 10); let nums = inputArray[1].split(' ').map(Number); function findMinSubArrayLen(target, nums) { let minLength = Infinity; let left = 0; let sum = 0; for (let right = 0; right < nums.length; right++) { sum += nums[right]; while (sum >= target) { minLength = Math.min(minLength, right - left + 1); sum -= nums[left]; left++; } } return minLength === Infinity ? 0 : minLength; // 如果找不到符合条件的子串,返回0(理论上应该总存在,这里为了防止意外情况) } let result = findMinSubArrayLen(target, nums); console.log(result); process.exit(); });

Powered By 可尔物语

浙ICP备11005866号-12