- 剑指offerII 069:山脉数组的顶部(二分、模拟)
int peakIndexInMountainArray(vector<int>& arr) { if (arr.size() == 1) { return 0; } int left = 0, right = arr.size() - 1; //山峰顺序即可想到应该用局部有序进行二分查找 //尝试:普通start、end二分解决不了(2351) while (left < right) { int mid = (left + right) / 2; if (arr[mid + 1] > arr[mid]) { left = mid + 1; } else { right = mid; } } return left; }
- 剑指offer 03:数组中重复的数字
//数学-原地法 int findRepeatNumber(vector<int>& nums) { for (int i = 0; i < nums.size(); i++) { while (nums[i] != i && nums[nums[i]] != nums[i]) { swap(nums[i], nums[nums[i]]); } } for (int i = 0; i < nums.size(); i++) { if (nums[i] != i) { return nums[i]; } } return -1; }
剑指offer 04:二维数组中的查找
剑指offer 05:替换空格
剑指offer题目汇总(持续更新、整理)
最新推荐文章于 2024-09-27 22:04:13 发布