LintCode - 搜索插入位置(普通)

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

難度:容易
要求:

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

樣例
[1,3,5,6],5 → 2
[1,3,5,6],2 → 1
[1,3,5,6],7 → 4
[1,3,5,6],0 → 0

思路

    /** 
     * param A : an integer sorted array
     * param target :  an integer to be inserted
     * return : an integer
     */
    public int searchInsert(int[] A, int target) {
        if(A == null || A.length == 0){
            return 0;
        }
        int index = binarySearch(A, 0, A.length - 1, target);
        if(index < 0){
            for(int i = 0; i < A.length; i++){
                if(target < A[i]){
                    index = i;
                    break;
                }else if(i == A.length - 1){
                    index = i++;
                }
            }
        }
        return index;
    }
    
    public int binarySearch(int[] A,int left, int right, int target) {
        while(left < right){
            int mid = left + (right - left) / 2;
            if(target == A[mid]){
                right = mid;
            }else if(target < A[mid]){
                right = mid - 1;
            }else{
                left = mid + 1;
            }
        }
        if(target == A[left]){
            return left;
        }
        return -1;
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,081評論 6 13
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,265評論 0 4
  • 每一天和每個微不足道的成績都是一種禮物。 自學畫畫,每天都有一個小成績。 要么孤獨,要么庸俗。
    114痣多星閱讀 1,039評論 16 15
  • 小公司靠老板、大公司靠團隊、超級公司靠智囊團。公司能不能做大,關鍵看團隊夠不夠強。 縱觀現在的商業巨頭,哪家不是有...
    威樂河灣閱讀 319評論 0 0