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
          主站蜘蛛池模板: 石林| 西充县| 中方县| 霍林郭勒市| 佛山市| 社旗县| 云林县| 即墨市| 蕲春县| 北海市| 富川| 鲜城| 辽宁省| 绥中县| 金门县| 修水县| 仪征市| 昔阳县| 伊宁县| 高雄市| 梓潼县| 屏南县| 汪清县| 祁连县| 大方县| 忻州市| 天柱县| 邮箱| 垦利县| 高平市| 莱芜市| 托里县| 抚松县| 陆河县| 攀枝花市| 土默特右旗| 临安市| 南木林县| 库伦旗| 桦川县| 吉林省|