题解 | #二分查找-II#

二分查找-II

http://www.nowcoder.com/practice/4f470d1d3b734f8aaf2afb014185b395

import java.util.*;

public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 如果目标值存在返回下标,否则返回 -1 * @param nums int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] nums, int target) { // write code here if (nums.length < 1){ return -1; } int pivot = nums.length / 2; int leftMost = 0; int rightMost = nums.length; while (true){ if (nums[pivot] == target){ int indexToReturn = pivot; for (int i = pivot-1; i >= 0; i--){ if (nums[i] == target){ indexToReturn = i; continue; } return indexToReturn; } return indexToReturn; } if (pivot >= nums.length-1 || pivot <= 0){ break; } if (nums[pivot] > target){ rightMost = pivot; pivot -= (pivot - leftMost + 1) / 2; } if (nums[pivot] < target){ leftMost = pivot; pivot += (rightMost - pivot) / 2; } } return -1; } }

全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务