leetCode 之SearchInsertPosition

来源:互联网 发布:前端面试题js 编辑:程序博客网 时间:2024/04/29 04:38

题目:

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.


其实就是查找的扩展

两种, 递归和迭代

// 递归public int searchPosition(int[] array,int start, int end ,int target){if(array[(end+start)/2] == target){return (end+start)/2;}if(end - start == 1 || end == start){if(array[start] < target){return start+1;}else{return start;}}if(array[(end+start)/2]>target){return searchPosition(array,start,(end+start)/2,target);}if(array[(end+start)/2]<target){return searchPosition(array,(end+start)/2+1,end,target);}return -1;}// 迭代public int searchPost(int[] array, int target){int end = array.length - 1;int start = 0;int index = 0;while(start <= end){index = (start+end)/2;if(array[index] == target)break;if(end - start == 1 || end == start){if(array[start]< target){index = start+1;}else{index = start;}break;}if(array[index] > target){end = index;}if(array[index] < target){start = index + 1;}}return index;}


0 0
原创粉丝点击