60搜索插入位置

給定一個排序數組和一個目標值,如果在數組中找到目標值則返回索引。如果沒有,返回到它將會被按順序插入的位置。
你可以假設在數組中無重復元素。

[1,3,5,6],5 → 2
[1,3,5,6],2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6],0 → 0
public class Solution {
    /*
     * @param A: an integer sorted array
     * @param target: an integer to be inserted
     * @return: An integer
     */
    public int searchInsert(int[] A, int target) {
        // write your code here
        if(A==null){
            return -1;
        }
        if(A.length==0||A[0]>target){
            return 0;
        }
        if(A[A.length-1]<target){
            return A.length;
        }
        int startIndex=0;
        int endIndex=A.length-1;
        int middleIndex;
        while(true){
            middleIndex=(startIndex+endIndex)/2;
            if(A[middleIndex]==target){
                return middleIndex;
            }
            //最后肯定是剩兩個數,這兩個數左邊的都比target小,右邊的都比target大
            if(startIndex>=endIndex){
                if(target>A[startIndex]){
                    return startIndex+1;
                }
                else{
                    return startIndex;
                }
            }else{
                if(target>A[middleIndex]){
                    startIndex=middleIndex+1;
                }else{
                    endIndex=middleIndex-1;
                }
            }
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 題目 描述 實現一個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。 你實現的棧將支持push,po...
    悠揚前奏閱讀 291評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 來源:NumPy Tutorial - TutorialsPoint 譯者:飛龍 協議:CC BY-NC-SA 4...
    布客飛龍閱讀 33,003評論 6 98
  • 1語文雜文輸出 2.語文空空本默寫
    e70eb7933654閱讀 179評論 0 0