首页 > 编程语言 >算法探索_缺失的第一个正数

算法探索_缺失的第一个正数

时间:2023-03-12 10:38:15浏览次数:42  
标签:双循环 nums int isOK 示例 算法 length 正数 缺失


问题描述:

给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。

示例 1:

输入: [1,2,0]
输出: 3
示例 2:

输入: [3,4,-1,1]
输出: 2
示例 3:

输入: [7,8,9,11,12]
输出: 1

提示:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。

来源:力扣(LeetCode)
链接:​​​https://leetcode-cn.com/problems/first-missing-positive​

解决思路:

 1. 假设几种极限情况,得出结果最小是1,最大是length+1.

 2.双循环暴力查找

 3.优化点:找到通过的数之后,再循环的时候忽略曾经通过的数

/*
*作者:赵星海
*时间:2020/8/5 10:02
*用途:缺失的第一个正数
*/
public int firstMissingPositive(int[] nums) {
//从题中得知:结果最小是1,最大是length+1.
//双循环暴力查找
//--------------------------
boolean isOK; //是否找到该数
for (int i = 1; i <= nums.length; i++) {
isOK = false;
for (int j = 0; j < nums.length; j++) {
if (i == nums[j]) {
//通过
isOK = true;
}
}
if (isOK == false) {
return i;
}
}
return nums.length + 1;

}

 

标签:双循环,nums,int,isOK,示例,算法,length,正数,缺失
From: https://blog.51cto.com/u_13520184/6115486

相关文章

  • 算法探索_搜索旋转排序数组
    问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个......
  • 系统架构设计师考试知识点整理-4:死锁问题、银行家算法、管程与线程
    死锁问题1.死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源所造成的循环等待的现象。2.死锁产生的根本原因在于系统提供的资源少于并发进程......
  • 每日算法 230311
    题目面试题17.05.字母与数字难度中等153给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端......
  • 线性回归算法
    1.算法原理y=w*x+b+εloss=Σ(w*xi+b-yi)2w'=w-lr*(loss对w求偏导)      #梯度下降算法b'=b-lr*(loss对b求偏导)       #梯度下降算法 2.......
  • 避免死锁(银行家算法)
    避免死锁(银行家算法)1、什么是安全序列2、安全序列、不安全状态、死锁的联系3、银行家算法实现思想知识回顾......
  • 图论算法
    图论算法第一节基本概念一、什么是图?很简单,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,定义为:graph=(V,E)。V是一个非空有限集合,代表顶点(结点),E代表边的集合。......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述       随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文介绍了LTE的概念......
  • 量子图形加密算法的MATLAB代码实现
    一、概述目前主流的量子图形加密算法有量子像素编码算法(QuantumImagePixelEncoding,QIPE)、量子像素置乱算法(QuantumImagePixelScrambling,QIPS)等。一个简......
  • 八大排序算法
    概述排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。......