国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

LeetCode 41. First Missing Positive

2019-11-11 03:49:39
字體:
供稿:網(wǎng)友

描述 Given an unsorted integer array, find the first missing positive integer.

For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2.

Your algorithm should run in O(n) time and uses constant space.

分析 本質(zhì)上是桶排序 (bucket sort),每當 nums[i]!= i+1 的時候,將 nums[i] 與 nums[nums[i]-1] 交換,直到無法 交換為止,終止條件是 nums[i]== nums[nums[i]-1]。

代碼

class Solution {public: int firstMissingPositive(vector<int>& nums) { bucket_sort(nums); const int n = nums.size(); for (size_t i = 0; i < n; ++i) { if (nums[i] != i + 1) return i + 1; } return n + 1; }PRivate: static void bucket_sort(vector<int>& nums) { const int n = nums.size(); for (size_t i = 0; i < n; ++i) { while (nums[i] != i + 1) { if (nums[i] <= 0 || nums[i] > n || nums[i] == nums[nums[i] - 1]) break; swap(nums[i], nums[nums[i] - 1]); } } }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉川市| 白河县| 响水县| 肇州县| 常宁市| 儋州市| 香河县| 商丘市| 兴安县| 新和县| 错那县| 确山县| 苍南县| 舞阳县| 绥江县| 安陆市| 永善县| 尼勒克县| 怀化市| 沾化县| 神农架林区| 旅游| 松阳县| 定州市| 长子县| 自治县| 桓台县| 丰都县| 尚义县| 英吉沙县| 上虞市| 滨州市| 防城港市| 自治县| 松潘县| 灵台县| 普洱| 五峰| 岑溪市| 铜鼓县| 清镇市|