leetcode hot100数组:缺失的第一个正数

为了知道第一个缺失的正数,可以将所有的整数按照顺序放到数组里面,然后遍历数组,哪个地方不是对应的正数,那么就缺失了这个地方的对应的正数。

需要放进数组进行排列的数据需要满足要求:正数、大小小于等于数组大小的数

如何进行排列,只需要遍历到某个索引,然后将这个地方的数据放到合适的地方就行了。应当让这两个数交换:nums[i] 和nums[nums[i]-1],之所以减一就是为了满足上述要求。那么交换一次就行了吗?不行,因为交换过来的数不一定就是放到了合适的位置,所以需要while循环

class Solution {

public int firstMissingPositive(int[] nums) {

for(int i = 0;i<nums.length;i++){

int cur = nums[i];

while(cur>0&&cur<=nums.length&&cur!=nums[cur-1]){

int temp = cur;

nums[i] = nums[cur-1];

nums[cur-1] = cur;

cur = nums[i];

}

}

for(int i = 0;i<nums.length;i++){

if(nums[i]!=i+1){

return i+1;

}

}

return nums.length+1;

}

}

相关推荐
花开富贵ii1 小时前
代码随想录算法训练营四十三天|图论part01
java·数据结构·算法·深度优先·图论
weixin_307779131 小时前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
legendary_bruce8 小时前
【22-决策树】
算法·决策树·机器学习
艾伦~耶格尔9 小时前
【数据结构进阶】
java·开发语言·数据结构·学习·面试
max5006009 小时前
基于桥梁三维模型的无人机检测路径规划系统设计与实现
前端·javascript·python·算法·无人机·easyui
闪电麦坤9511 小时前
数据结构:N个节点的二叉树有多少种(Number of Binary Trees Using N Nodes)
数据结构·二叉树·
快去睡觉~11 小时前
力扣400:第N位数字
数据结构·算法·leetcode
qqxhb12 小时前
零基础数据结构与算法——第七章:算法实践与工程应用-搜索引擎
算法·搜索引擎·tf-idf·倒排索引·pagerank·算法库
gzzeason13 小时前
LeetCode Hot100:递归穿透值传递问题
算法·leetcode·职场和发展