zoukankan      html  css  js  c++  java
  • 33. Search in Rotated Sorted Array

    33. Search in Rotated Sorted Array

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

    (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

    You are given a target value to search. If found in the array return its index, otherwise return -1.

    You may assume no duplicate exists in the array.

     1 /**
     2  * @param {number[]} nums
     3  * @param {number} target
     4  * @return {number}
     5  */
     6 var search = function(A, target) {
     7     //有序数组查找固定值,第一反应就是二分。 
     8     var lo = 0;
     9     var hi = A.length - 1;
    10     
    11     while (lo < hi) {
    12         var mid = Math.floor((lo + hi) / 2);
    13         if (A[mid] == target) return mid;
    14         
    15         if (A[lo] <= A[mid]) {
    16             if (target >= A[lo] && target < A[mid]) {
    17                 hi = mid - 1;
    18             } else {
    19                 lo = mid + 1;
    20             }
    21         } else {
    22             if (target > A[mid] && target <= A[hi]) {
    23                 lo = mid + 1;
    24             } else {
    25                 hi = mid - 1;
    26             }
    27         }
    28     }
    29     return A[lo] == target ? lo : -1;
    30 };
  • 相关阅读:
    中值滤波与图像锐化
    空间域图像增强
    图像的几何变换
    Fourier分析应用
    Gale-Shapley算法
    有理数与无限循环小数
    线性可分支持向量机
    拉格朗日乘子法+KKT条件
    点到平面的距离
    BP神经网络
  • 原文地址:https://www.cnblogs.com/huenchao/p/7705097.html
Copyright © 2011-2022 走看看