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

郑州模板建站中国空间站首次太空授课

郑州模板建站,中国空间站首次太空授课,网络推广优化,360优化大师软件1. 题目大意 给你一个未排序的整数数组 nums #xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 2. 思路分析 示例 1#xff1a; 输入#xff1a;nums [3,4,-1,1] 输出#xff1a;2 解释#xff1…1. 题目大意 给你一个未排序的整数数组 nums 请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 2. 思路分析 示例 1 输入nums [3,4,-1,1] 输出2 解释1 在数组中但 2 没有。根据示例对于一个长度为 N 的数组其中没有出现的最小正整数只能在[1, N1]中。这是因为如果[1, N]都出现了那么答案是N1否则答案是 [1, N]中没有出现的最小正整数。 题目又要求我们不能使用额外空间所以我们直接对原数组进行操作。因为我们只需要关注数组中[1, N]之间的数所以可以把值i, 置换到数组对应下标的位置得到nums[i-1] i。这里忽略0 N的值。 上面提到过程中本质上涉及元组两个元素的交换如果nums[i-1] ! i则需要反复执行上面的流程。示例1变换流程 arrayindex说明[3, 4, -1, 1]0[-1, 4, 3, 1]0首先交换3和-1,虽然nums[0]!1但是出现负值接着往前走[-1, 1, 3, 4]1置换1和4[1, -1, 3, 4]1因为nums[1] ! 2, 所以继续置换,使得nums[0] 1[1, -1, 3, 4]2nums[2] 3继续[1, -1, 3, 4]2nums[3] 4结束 最后我们只需要查找置换后数组中nums[i] ! i-1的情况如果数组中都没有出现上述情况则直接返回N1。 3. 代码示例 Java版本 class Solution {public int firstMissingPositive(int[] nums) {for(int i0; inums.length; i){while(nums[i] 0 nums[i] nums.length nums[i] ! i1 nums[i] ! nums[nums[i]-1]){ // nums[i] ! nums[nums[i]-1]避免数组中有值重复的情况int n nums[i]-1;int tmp nums[n];nums[n] nums[i];nums[i] tmp;}}System.out.println(Arrays.toString(nums));for(int i0; inums.length; i){if(nums[i] ! (i1) || nums[i] 0)return i1;}return nums.length1;} }Python版本 class Solution:def firstMissingPositive(self, nums: List[int]) - int:l len(nums)if l 0:return 1for i in range(l):while(1 nums[i] l and nums[i] ! i1 and nums[i] ! nums[nums[i] - 1]):# nums[nums[i] - 1], nums[i] nums[i], nums[nums[i] - 1]for i in range(l):if nums[i] ! i1:return i1return l1在上述的while循环中nums[i] ! nums[nums[i]-1]是为了避免数组中有值重复的情况如果不加出处理就会一直被置换陷入死循环。
http://www.hkea.cn/news/14542636/

相关文章:

  • 如何在自己建设的网站上发表文章做贷款的网站
  • 建购物的网站需要多少钱网站建设实训报告doc
  • 给别人做网站会连累自己吗网站建设合同的注意事项
  • 深圳网站建设收费标准会展设计方案
  • 购物网站建设的可行性电商运营一天都干啥
  • 国外服务器做视频网站心理学重点学科建设网站
  • 公司旅游视频网站模板企业网站的制作方式
  • 学做网站难不难手机算命网站建设
  • 做网站哪建设电商网站
  • 常用的网站制作哈尔滨网站建设模板
  • eyoucms教程优化网站步骤
  • php网站开发框架网站没有做伪静态是什么样子
  • 品牌网站建设毛尖2发卡网站源码下载
  • 怎么建立图片的网站吗龙华企业网站建设公司
  • 家居网站建设的背景及意义网站建设需要的硬件
  • 营销型网站案例展示wordpress改logo不显示
  • 做机械设备哪个网站好公司注册地址可以是家庭地址吗
  • 电商网站通用左侧弹出导航性做网站
  • 签订网站制作协议需注意什么小学生编程软件
  • 奉节网站建设公司重庆建筑招聘网
  • 旅游公司网站 优帮云嘉兴做网站建设的公司哪家好
  • 网站开发项目详细计划书专门做红酒的网站
  • 西安企业自助建站系统朝天门户网
  • windows10网站建设有网站吗免费的
  • 哪个网站能学做微商泗阳网站定制
  • 如何查询网站注册信息查询济南建设银行网点
  • 建设电影网站论文保定网站建设开发
  • 做网站那家好关于网站建设的ppt
  • 网站添加验证码wordpress 路由器
  • 深圳市长城建设有限公司网站天元建设集团有限公司施工方案