作者:reedfan
链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/solution/zai-javazhong-ji-bai-liao-100de-yong-hu-by-reedfan/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
要用二分法......没怎么看出来。前两天,看到了一个华为面试编程题。本质就是求一个数组中的元素和等于target(目标值)。我的每日一练65,“组合总和II”就是那个。用的是回溯递归。
个人微改:
class rotated{
public boolean search(int nums[],int target) {
if(nums.length==0||nums==null) {
return false;
}
int start = 0,end = nums.length-1;
int mid;
while(start<=end) {
mid = (end + start)/2;
if(nums[mid]==target) {
return true;
}
if(nums[start]==nums[mid]) {
start++;
continue;
}
if(nums[start]<nums[mid]) {
if(nums[start]<=target && nums[mid]>target) {
end = mid - 1;
}else {
start = mid + 1;
}
}else {
if(nums[mid]<target && target<=nums[end]) {
start = mid + 1;
}else {
end = mid - 1;
}
}
}
return false;
}
}
public class SearchInRotatedSortedArrayII {
public static void main(String args[]) {
rotated hah = new rotated();
int[] nums1 = new int[] {2,5,6,0,0,1,2};
int target1 = 0;
int target2 = 3;
System.out.println(hah.search(nums1,target1));
System.out.println(hah.search(nums1,target2));
}
}

本文介绍了一个使用二分法解决在旋转有序数组中查找特定元素的问题的算法实现。该方法适用于数组可能包含重复元素的情况,通过逐步缩小搜索范围来提高效率。
2922

被折叠的 条评论
为什么被折叠?



