精華區beta Marginalman 關於我們 聯絡資訊
41. First Missing Positive 昨天隨便點類似題找的 O(n) time O(1) space 想好久 看別人用swap做我那段醜醜處理 我又想那個了 啊哈 class Solution { public: int firstMissingPositive(vector<int>& nums) { int tmp; nums.push_back(0); for(int i=0; i<nums.size(); i++){ if(nums[i] <= 0 || nums[i] == i) continue; tmp = nums[i]; nums[i] = -1; while(tmp < nums.size() && nums[tmp] != tmp){ if(nums[tmp] <= 0){ nums[tmp] = tmp; break; } int t = nums[tmp]; nums[tmp] = tmp; tmp = t; } } for(int i=1; i<nums.size(); i++){ if(nums[i] <= 0) return i; } return nums.size(); } }; 好像要開始忙了 又不能當小刷生ㄌ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.95.1 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1708483617.A.121.html ※ 編輯: HccrtZ (223.137.95.1 臺灣), 02/21/2024 10:47:48
JIWP: 大師 02/21 11:07