IT技術小屋

          秋風秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks
          給定一個無序的整數數組,怎么找到第一個大于0,并且不在此數組的整數。比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能O(1)空間和O(n)時間。
           1 public class Solution {
           2     public int findMissedNumber(int[] nums) {
           3         for (int i = 0; i < nums.length; i++) {
           4             if (nums[i] > 0 && nums[i] - 1 != i && nums[i] != nums[nums[i] - 1]) {
           5                 int tmp = nums[nums[i] - 1];
           6                 nums[nums[i] - 1] = nums[i];
           7                 nums[i] = tmp;
           8                 i--;
           9             }
          10         }
          11         for (int j = 0; j < nums.length; j++) {
          12             if (nums[j] - 1 != j) return j + 1;
          13         }
          14         return nums.length + 1;
          15     }
          16 }
          posted on 2013-12-28 15:31 Meng Lee 閱讀(156) 評論(0)  編輯  收藏 所屬分類: 待字閨中
          主站蜘蛛池模板: 建平县| 平远县| 正阳县| 沙田区| 新闻| 江阴市| 阿图什市| 卢龙县| 龙游县| 巧家县| 石首市| 台北县| 靖边县| 武汉市| 邯郸县| 潮州市| 石嘴山市| 太原市| 天门市| 葵青区| 板桥市| 布尔津县| 锡林浩特市| 巴楚县| 南溪县| 隆安县| 宜宾市| 龙山县| 沂源县| 呼伦贝尔市| 南乐县| 双辽市| 邯郸县| 平江县| 星子县| 乐业县| 乡宁县| 商水县| 留坝县| 通河县| 祁连县|