IT技術小屋

          秋風秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            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

          本題先對數組進行二分搜索,如果找到了目標元素就返回相應的index,如果最終沒有找到對應的元素,則比較最后一個元素與目標元素的大小。實現代碼如下:
           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 閱讀(109) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 浮梁县| 元江| 运城市| 洛阳市| 上蔡县| 沙雅县| 泾川县| 广东省| 万州区| 天水市| 台州市| 秭归县| 镇安县| 甘泉县| 佛学| 棋牌| 香港| 巨野县| 丹巴县| 永福县| 山东省| 西乌珠穆沁旗| 虞城县| 大城县| 吉木萨尔县| 当涂县| 财经| 裕民县| 随州市| 徐水县| 从化市| 城市| 女性| 山东省| 柞水县| 娱乐| 白城市| 晋江市| 祁东县| 云梦县| 武汉市|