[分析] 同Search in Rotated Sorted Array 的差别在于数组元素可能重复,遇到重复无法推断target所属范围时就一步步移动左边界直到左边界和中间元素不同或者相遇为止。联系Find Minimum in Rotated Sorted Array II进行理解。
public class Solution {
public boolean search(int[] nums, int target) {
if (nums == null || nums.length == 0)
return false;
int left = 0, right = nums.length - 1;
int mid = 0;
while (left <= right) {
mid = left + (right - left) / 2;
if (nums[mid] == target)
return true;
else if(nums[left] < nums[mid]) {
if (nums[left] == target)
return true;
else if (nums[left] < target && target < nums[mid])
right = mid - 1;
else
left = mid + 1;
} else if (nums[left] == nums[mid]) {
left++;
} else {
if (nums[right] == target)
return true;
else if (nums[mid] < target && target < nums[right])
left = mid + 1;
else
right = mid - 1;
}
}
return false;
}
}
分享到:
相关推荐
javascript js_leetcode题解之81-search-in-rotated-sorted-array-ii.js
js js_leetcode题解之33-search-in-rotated-sorted-array.js
c语言入门 C语言_leetcode题解之33-search-in-rotated-sorted-array.c
javascript js_leetcode题解之154-find-minimum-in-rotated-sorted-array-ii.js
python python_leetcode题解之081_Search_in_Rotated_Sorted_Array_II
javascript js_leetcode题解之153-find-minimum-in-rotated-sorted-array.js
c c语言_leetcode题解之0081_search_in_rotated_sorted_array_ii.zip
python python_leetcode题解之154_Find_Minimum_in_Rotated_Sorted_Array_II.py
python python_leetcode题解之153_Find_Minimum_in_Rotated_Sorted_Array.py
- Search in Rotated Sorted Array II: 假设按照升序排序的数组在预先未知的某个点上进行了旋转,该问题要求在旋转后的数组中搜索特定元素。 这些知识点涵盖了数据结构和算法的核心概念,以及如何用Python语言实现...
Search in Rotated Sorted Array(搜索旋转排序数组)#数组 2020/12/08 19. Remove Nth Node From End of List(删除链表的倒数第N个节点) 153. Find Minimum in Rotated Sorted Array(寻找旋转排序数组中的最小值...
find-minimum-in-rotated-sorted-array-0153 数组的乘积-除了-self-0238 从排序数组中删除重复项-0026 搜索旋转排序数组-0033 两个整数之和-0371 二和-0001 回溯 组合-和-0039 组合总和-ii-0040 电话号码的字母组合 ...
- **2.1.4 Search in Rotated Sorted Array II** - 同上,但数组可能包含重复元素。 - **2.1.5 Median of Two Sorted Arrays** - 求两个有序数组的中位数。 - 实现思路:通过比较两个数组的中间值来逐步缩小...
- Search in Rotated Sorted Array II(在旋转排序数组中搜索II) - Find Minimum in Rotated Sorted Array(在旋转排序数组中寻找最小值) - Find Minimum in Rotated Sorted Array II(在旋转排序数组中寻找...
7. **二分查找**:在已排序的数组中查找特定元素或满足条件的元素,如"搜索旋转排序数组"(Search in Rotated Sorted Array)。 8. **位运算**:在数组操作中,位运算有时能提供高效的解决方案,如"无重复字符的...
颜色分类leetcode My Leetcode Problems Solutions Using javascript(ES6) 1 Two Sum 两数之和 5 Longest Palindromic Substring 最长回文子串 7 Reverse Integer 整数反转 9 Palindrome Number 回文数 11 Container...
- **在旋转排序数组中搜索 II/Search in Rotated Sorted Array II**: 当数组中存在重复元素时,在被旋转过的排序数组中搜索给定数字。 #### 高级算法技巧 - **数学与位操作(Math and Bit Manipulation)**: 利用数学...
search-in-rotated-sorted-array ,比较中间值和边,而不是目标和边 40:combination-sum-ii:传递最后选择的索引 41:先缺失正,交换 42:只是提醒:块 - 垃圾箱 43:多字符串,i+j,i+j+1 44:通配符
leetcode Coding-Interview A repo for popular coding interview problems mainly from Leetcode. 二分搜索/有序数组旋转 Find Minimum In Rotated Sorted Array Find Minimum In Rotated Sorted Array II Search ...