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 閱讀(151) 評論(0)  編輯  收藏 所屬分類: 待字閨中
          主站蜘蛛池模板: 永吉县| 湘乡市| 皮山县| 保德县| 栾城县| 鹤峰县| 根河市| 竹山县| 开江县| 九台市| 石城县| 达日县| 通道| 永新县| 呼和浩特市| 小金县| 宜宾县| 柘荣县| 齐齐哈尔市| 抚顺市| 定远县| 临潭县| 平顺县| 天等县| 鹤壁市| 富阳市| 平安县| 灌南县| 台东县| 洪湖市| 大城县| 永安市| 江达县| 定远县| 小金县| 曲靖市| 石家庄市| 横峰县| 东乡县| 无棣县| 河北区|