搜索旋转排序数组II
来源:互联网 发布:linux ntpdate 脚本 编辑:程序博客网 时间:2024/06/08 14:50
跟进“搜索旋转排序数组”,假如有重复元素又将如何?
是否会影响运行时间复杂度?
如何影响?
为何会影响?
写出一个函数判断给定的目标值是否出现在数组中。
样例
是否会影响运行时间复杂度?
如何影响?
为何会影响?
写出一个函数判断给定的目标值是否出现在数组中。
样例
给出[3,4,4,5,7,0,1,2]和target=4,返回 true
import java.util.Scanner;/** * 跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。样例给出[3,4,4,5,7,0,1,2]和target=4,返回 true * * @author Dell * */public class Test63 { public static boolean search(int[] A, int target) { if(A.length==0) return false; if(A.length==1) { return A[0]==target? true: false; } int i=0; int j=A.length-1; while(i<=j) { int mid=(i+j)/2; if(A[mid]==target) { return true; } else if(A[i]<A[mid]) { if(A[mid]>target&&A[i]<=target) j=mid-1; else i=mid+1; } else if(A[i]>A[mid]) { if(A[mid]<target&&target<=A[j]) { i=mid+1; } else j=mid-1; } else { i++; } } return false; }public static void main(String[] args) {Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] a=new int[n]; for(int i=0;i<a.length;i++) { a[i]=sc.nextInt(); } int target=sc.nextInt();System.out.println(search(a,target)); }}
阅读全文
0 0
- 搜索旋转排序数组 II
- 搜索旋转排序数组 II
- 搜索旋转排序数组 II
- 搜索旋转排序数组 II
- 搜索旋转排序数组II
- LintCode-搜索旋转排序数组 II
- LintCode : 搜索旋转排序数组 II
- lintcode-搜索旋转排序数组II-63
- LintCode:搜索旋转排序数组 II
- LintCode_63_搜索旋转排序数组 II
- Lintcode 搜索旋转排序数组 II
- LintCode 63 搜索旋转排序数组 II
- 搜索旋转排序数组
- 搜索旋转排序数组
- 搜索旋转排序数组
- 搜索旋转排序数组
- 搜索旋转排序数组
- 搜索旋转排序数组
- jmeter之content-type导致参数为空
- 在eclipse中导入weka(3.6版本)的源代码包
- Android自定义一个倒计时按钮
- 浙大PAT甲级-1013
- linux下人脸检测程序
- 搜索旋转排序数组II
- ztree 节点单选多选按钮不显示
- 3.2Struts2的搭建和基础知识
- opencv中遍历每一个像素点进行处理
- Spring实现AOP的4种方式
- 61 OrangePi Linux内核里的spi控制器驱动
- android的surfaceflinger原理讲解
- 两个fragment之间跳转listview数据丢失
- 【JavaSE练习】面向对象_模拟银行账户