查询插入位置

查询插入位置

 1process.stdin.resume();  2process.stdin.setEncoding('utf-8');  3let input = '';  4  5process.stdin.on('data', (data) => {  6 input += data;  7});  8  9process.stdin.on('end', () => { 10 // 去除输入字符串两端的空白字符 11 const trimmedInput = input.trim(); 12 // 将输入字符串按空格分割成数组,并转换为数字 13 const inputParts = trimmedInput.split(' ').map(Number); 14 15 // 假设数组部分和目标值部分是通过空格分隔的,且数组部分在目标值部分之前 16 // 我们取输入数组的前 n-1 个元素作为升序数组 nums,最后一个元素作为目标值 target 17 const n = inputParts.length; 18 const nums = inputParts.slice(0, n - 1); 19 const target = inputParts[n - 1]; 20 21 // 实现查找或确定插入位置的函数 22 function findInsertPosition(nums, target) { 23 let left = 0; 24 let right = nums.length - 1; 25 let index = -1; 26 27 while (left <= right) { 28 const mid = Math.floor((left + right) / 2); 29 if (nums[mid] === target) { 30 index = mid; 31 break; 32 } else if (nums[mid] < target) { 33 left = mid + 1; 34 } else { 35 right = mid - 1; 36 } 37 } 38 39 // 如果没有找到目标值,则返回应该插入的位置 40 return index !== -1 ? index : left; 41 } 42 43 // 调用函数并输出结果 44 const result = findInsertPosition(nums, target); 45 console.log(result); 46 47 process.exit(); 48});
process.stdin.resume(); process.stdin.setEncoding('utf-8'); let input = ''; process.stdin.on('data', (data) => { input += data; }); process.stdin.on('end', () => { // 去除输入字符串两端的空白字符 const trimmedInput = input.trim(); // 将输入字符串按空格分割成数组,并转换为数字 const inputParts = trimmedInput.split(' ').map(Number); // 假设数组部分和目标值部分是通过空格分隔的,且数组部分在目标值部分之前 // 我们取输入数组的前 n-1 个元素作为升序数组 nums,最后一个元素作为目标值 target const n = inputParts.length; const nums = inputParts.slice(0, n - 1); const target = inputParts[n - 1]; // 实现查找或确定插入位置的函数 function findInsertPosition(nums, target) { let left = 0; let right = nums.length - 1; let index = -1; while (left <= right) { const mid = Math.floor((left + right) / 2); if (nums[mid] === target) { index = mid; break; } else if (nums[mid] < target) { left = mid + 1; } else { right = mid - 1; } } // 如果没有找到目标值,则返回应该插入的位置 return index !== -1 ? index : left; } // 调用函数并输出结果 const result = findInsertPosition(nums, target); console.log(result); process.exit(); });

Powered By 可尔物语

浙ICP备11005866号-12