当前位置: 首页 > news >正文

41.缺失的第一个正数(java)

个人理解:

找一个未出现的最小正数,遍历数组,检查当前数是否大于等于1,小于等于最大数组长度;

如果在这个区间,则对该数进行处理。做法是:将当前数移动到,当前数-1的下标位置,比如数字1 ,需要移动到下标为0的位置。但是在移动前,需要判断目标下标位置处的数是否已经是正确的,如下标0 的位置已经是1了,那么就不需要处理该数了。开始遍历下一个数。如果不正确,则开始交换。将当前位置处的数,移动到(数-1)下标。交换完之后,再次检查,重复上述过程。

如果该数不在这个区间,那么说明缺少的最小正数一定小于该数。

如果遍历完该数组,还没有return,则最后return len+1;

class Solution {public int firstMissingPositive(int[] nums) {int len=nums.length;for(int i=0;i<len;i++){while(nums[i]>=1&&nums[i]<=len&&nums[nums[i]-1]!=nums[i]){swap(nums,i,nums[i]-1);}}for(int i=0;i<len;i++){if(nums[i]!=i+1){return i+1;}}return len+1;}public void swap(int[] nums,int idx1,int idx2){int tmp=nums[idx2];nums[idx2]=nums[idx1];nums[idx1]=tmp;}
}

http://www.xdnf.cn/news/134911.html

相关文章:

  • jQuery AJAX、Axios与Fetch
  • YOLO12架构优化——引入多维协作注意力机制(MCAM)抑制背景干扰,强化多尺度与小目标检测性能
  • 深入理解指针(4)
  • Centos7.2安装Xmap
  • 【git#4】分支管理 -- 知识补充
  • 【AI落地应用实战】借助 Amazon Q 实现内容分发网络(CDN)CDK 构建的全流程实践
  • 图像预处理-图像亮度变换
  • U8G2在PC端模拟(C语言版本)
  • 【神经网络与深度学习】训练集与验证集的功能解析与差异探究
  • 【器件专题1——IGBT第1讲】IGBT:电力电子领域的 “万能开关”,如何撑起新能源时代?
  • deepseek-r1-671B满血版,全栈式智能创作平台 - 多模态大模型赋能未来创作
  • 云服务器centos 安装hadoop集群
  • pcd2pgm的launch文件实现
  • 使用yolo用python检测人脸
  • 第三方库与工具:响应式编程RxJava与Flow原理剖析
  • Video-LLaVA
  • Milvus(7):Schema、主字段和自动识别
  • 新!在 podman-machine-default 中安装 CUDA、cuDNN、Anaconda、PyTorch 等并验证安装
  • html中margin的用法
  • express的模板handlebars用app.engine()创建配置和用exphbs.create()的区别
  • 汽车零配件供应商如何通过EDI与主机厂生产采购流程结合
  • 单机无穷大系统暂态稳定性仿真Matlab模型
  • 全球玻璃纸市场深度洞察:环保浪潮下的材料革命与产业重构(2025-2031)
  • C++ 类及函数原型详解
  • HTML word属性
  • 巴西kwai短视频推广旅游广告获客营销策略
  • 如何本地无损放大图片保持高清画质
  • 【C++基础知识】折叠表达式详解--结合上一篇
  • OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享
  • iphonex uniapp textarea标签兼容性处理过程梳理