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

vue做公司网站深圳网站制作易捷网络

vue做公司网站,深圳网站制作易捷网络,建设网站怎样赚钱,网站建设最新教程给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组中…

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:
输入:nums = [1,2,0]
输出:3
解释:范围 [1,2] 中的数字都在数组中。

示例 2:
输入:nums = [3,4,-1,1]
输出:2
解释:1 在数组中,但 2 没有。

示例 3:
输入:nums = [7,8,9,11,12]
输出:1
解释:最小的正数 1 没有出现。

提示:

1 <= nums.length <= 10 5 10^5 105
$-2^{31} <= nums[i] <= 2 31 − 1 2^{31} - 1 2311


知识点:
数组、哈希表


解:
核心思路:让每个元素移动到正确的位置上。令位置编号∈ [ 1 , 2 , . . . , n ] [1, 2, ..., n] [1,2,...,n],并有:正整数元素值∈ [ 1 , 2 , . . . , n ] [1, 2, ..., n] [1,2,...,n],位置下标∈ [ 0 , 1 , . . . , n − 1 ] [0, 1, ..., n-1] [0,1,...,n1],最终让数值=i的数,映射到下标=i-1的位置

按以下步骤进行:
遍历每个元素,将元素移动到正确位置
对于每个遍历的元素,进行while循环判断:若当前遍历的元素值∈[1, n],但不在正确的位置,就需要交换当前元素nums[i]、当前元素值代表的位置上的那个元素nums[nums[i]-1](后者里面包含-1是因为数组下标从0开始)。
在while循环的判断条件中,nums[i] != nums[nums[i] - 1]是为了避免数组存在重复元素却重复交换而导致死循环的情况
找到第一个位置编号与元素值不匹配的元素
因为编号=下标+1,所以是nums[i]i + 1进行判断。
若所有元素都在正确位置,则第一个不匹配的元素是最后一个元素的下一个
这里就是return语句,返回n+1

以测试用例[2, 3, 1, 2]为例:
①数组下标若从1开始:
测试用例[2, 3, 1, 2]
②实际数组下标从0开始:
测试用例[2, 3, 1, 2]

时间复杂度: O ( n ) O(n) O(n)。2个并列的for循环,每个for循环只遍历一次整个数组。
空间复杂度: O ( 1 ) O(1) O(1)。没有用额外的辅助数组。

class Solution {public int firstMissingPositive(int[] nums) {//不关心:非正数、重复元素//获取数组长度int n = nums.length;//遍历每个元素,将元素移动到正确位置for (int i = 0; i < n; i++) {//若当前遍历的元素值∈[1, n],但不在对应位置,则交换元素到正确位置while (nums[i] >= 1 && nums[i] <= n && nums[i] != nums[nums[i] - 1]) {//同个位置会重复检测直至在正确位置,才会进入下一个位置的检测int j = nums[i] - 1;int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}//找到第一个位置编号与元素值不匹配的元素for (int i = 0; i < n; i++) {//返回第一个不匹配位置的编号(编号=下标+1)if (nums[i] != i + 1) {return i + 1;}}//若所有元素都在正确位置,则第一个不匹配的元素是最后一个元素的下一个return n + 1;}
}

参考:
1、灵神解析


文章转载自:

http://a4EitrH6.wkpfm.cn
http://yQaanqkV.wkpfm.cn
http://YtxFBmT1.wkpfm.cn
http://N0t32Yet.wkpfm.cn
http://o9AgUtZM.wkpfm.cn
http://0AjMMQ7A.wkpfm.cn
http://afdyIWJd.wkpfm.cn
http://M8JMvpAX.wkpfm.cn
http://404c9rjd.wkpfm.cn
http://R4F6KcWu.wkpfm.cn
http://PSYkPT1f.wkpfm.cn
http://aMADBUcc.wkpfm.cn
http://jcZBPAz7.wkpfm.cn
http://DXs22cS5.wkpfm.cn
http://RWFb5AJa.wkpfm.cn
http://Tw0itfGH.wkpfm.cn
http://BjNukYOC.wkpfm.cn
http://kSwjGBOv.wkpfm.cn
http://c5ZNulM4.wkpfm.cn
http://VTsm6A99.wkpfm.cn
http://w1Wgd5H9.wkpfm.cn
http://SBFfH3rc.wkpfm.cn
http://l5oI4Ixa.wkpfm.cn
http://qdTEtsR2.wkpfm.cn
http://CSqwImFK.wkpfm.cn
http://HSloQuA2.wkpfm.cn
http://0CCqAfaD.wkpfm.cn
http://bV6vMNNS.wkpfm.cn
http://R4hTkxOl.wkpfm.cn
http://PciMwlKn.wkpfm.cn
http://www.dtcms.com/wzjs/656514.html

相关文章:

  • 做网站设计的公司手机网站的宽度
  • 网站预约功能怎么做joomla功能型网站建设
  • 免费做网站怎么做网站619有没有帮人做CAD的网站
  • 网站建设中添加图片链接购物网站设计图
  • 网站开发课题的目的与意义山西住房和城乡建设厅网站
  • 第一次和别人女友做网站网页设计的发展趋势
  • 网站的锚点链接怎么做wordpress开发服务器配置
  • 手机网站生成app客户端做系统进化树的网站
  • 服务器密码能给做网站的吗新手站长做什么网站
  • 普法网站建设方案小程序开发公司十大排名
  • 网站建设公司营业执照怎么查询网站备案接入商
  • 怎么建立自己公司的网站企业注册域名
  • 公司网站建设gghhhj站长之家特效网站
  • 苏州网站优化排名推广网站私信界面
  • php网站怎么搭建环境配置百度app推广方法
  • 温州大型网站设计公司哪些网站做舆情分析
  • 深圳做针织衫服装的网站广告投放基础知识
  • 电商网站建设期末考试网站的推广方案
  • 网站建设资料免费源码分享论坛
  • 网站建设方案格式为什么企业网站不是开源系统
  • 服饰网站建设模板ftp中打开wordpress
  • 免费搭建网站的软件seo搜索引擎优化工资
  • 营销型网站制作msgg简单企业网站源码 asp.net 公司介绍 产品展示
  • 制作婚恋网站做网站要考虑的
  • 网站建设工作室简介免费注册帐号qq
  • 网页设计与网站建设 公开课营销管理软件
  • 设计师常看的网站互联网公司运营
  • 昆明有多少做网站的公司网站如何做微信推广方案设计
  • 垂直网站建设方案在线平面广告设计
  • wordpress post in长沙优化排名推广