35. 搜索插入位置
最近更新:2025-02-02 | 字数总计:194 | 阅读估时:1分钟 | 阅读量:次
- 解析
- 二分查找 递归法
- 二分查找 迭代法
Problem: 35. 搜索插入位置
解析
二分查找的简单应用
二分查找 递归法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public: int searchInsert(vector<int> &nums, int target) { return binarySearch(nums, 0, nums.size() - 1, target); } int binarySearch(vector<int> nums, int left, int right, int target) { if (left > right) { return left; } int mid = (left + right) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] > target) { return binarySearch(nums, left, mid - 1, target); } else { return binarySearch(nums, mid + 1, right, target); } } };
|
二分查找 迭代法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public: int searchInsert(vector<int> &nums, int target) { int left = 0, right = nums.size() - 1; while (left <= right) { int mid = (left + right) / 2; if (nums[mid] < target) { left = mid + 1; } else if (nums[mid] > target) { right = mid - 1; } else { return mid; } } return left; } };
|