zoukankan      html  css  js  c++  java
  • [LintCode] 457 Classical Binary Search

    Description
    Find any position of a target number in a sorted array. Return -1 if target does not exist.  


    Example
    Given [1, 2, 2, 4, 5, 5].
    For target = 2, return 1 or 2.
    For target = 5, return 4 or 5.
    For target = 6, return -1.

    4/27/2017

    算法班

     1 public class Solution {
     2     /**
     3      * @param nums: An integer array sorted in ascending order
     4      * @param target: An integer
     5      * @return an integer
     6      */
     7     public int findPosition(int[] nums, int target) {
     8         // Write your code here
     9         if (nums == null || nums.length == 0) {
    10             return -1;
    11         }
    12         
    13         int start = 0, end = nums.length - 1;
    14         while (start + 1 < end) {
    15             int mid = start + (end - start) / 2;
    16 
    17             if (nums[mid] <= target) {
    18                 return mid;
    19             } else if (nums[mid] < target) {
    20                 start = mid;
    21             } else {
    22                 end = mid;
    23             }
    24         }
    25         if (nums[start] == target) return start;
    26         else if (nums[end] == target) return end;
    27         return -1;
    28     }
    29 }
  • 相关阅读:
    STL常见用法
    7-1 求a/b的高精度值 (70分)
    迷宫问题
    ES6新特性之箭头函数语法
    2020软件工程作业05
    2020软件工程作业04
    CTF之SQL注入1
    CTF之Git泄露
    CTF之网站源码
    CTF之HTTP基础认证
  • 原文地址:https://www.cnblogs.com/panini/p/6779849.html
Copyright © 2011-2022 走看看