IT技術(shù)小屋

          秋風(fēng)秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks
          Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
          You may assume no duplicates in the array.
          Here are few examples.
          [1,3,5,6], 5 → 2
          [1,3,5,6], 2 → 1
          [1,3,5,6], 7 → 4
          [1,3,5,6], 0 → 0

          本題先對數(shù)組進(jìn)行二分搜索,如果找到了目標(biāo)元素就返回相應(yīng)的index,如果最終沒有找到對應(yīng)的元素,則比較最后一個元素與目標(biāo)元素的大小。實現(xiàn)代碼如下:
           1 public class Solution {
           2     public int searchInsert(int[] A, int target) {
           3         int length = A.length;
           4         if (A.length == 0) return 0;
           5         int i = 0, j = length - 1;
           6         while (i < j) {
           7             int mid = (i + j) / 2;
           8             if (A[mid] == target) return mid;
           9             if (A[mid] < target) {
          10                 i = mid + 1;
          11             } else {
          12                 j = mid - 1;
          13             }
          14         }
          15         return A[i] < target ? i + 1 : i;
          16     }
          17 }
          posted on 2013-12-23 09:11 Meng Lee 閱讀(103) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 都昌县| 岚皋县| 略阳县| 肥东县| 平舆县| 尤溪县| 张北县| 阜康市| 贵溪市| 云林县| 原阳县| 柞水县| 北海市| 鹿泉市| 永平县| 岳普湖县| 德阳市| 博乐市| 无锡市| 姚安县| 新宾| 贺兰县| 健康| 巍山| 镇江市| 东光县| 金昌市| 砚山县| 上林县| 建瓯市| 浮山县| 航空| 枣庄市| 酉阳| 儋州市| 河北区| 淅川县| 观塘区| 镶黄旗| 赤壁市| 周至县|