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

免费招聘网站有哪些平台动漫设计师工资一般多少

免费招聘网站有哪些平台,动漫设计师工资一般多少,温州市建设小学网站,wordpress 微商城模板1. 题目大意 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 2. 思路分析 示例 1: 输入:nums [3,4,-1,1] 输出:2 解释&#xff1…

1. 题目大意

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

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

2. 思路分析

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

根据示例,对于一个长度为 N 的数组,其中没有出现的最小正整数只能在[1, N+1]中。这是因为如果[1, N]都出现了,那么答案是N+1,否则答案是 [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的情况,如果数组中都没有出现上述情况则直接返回N+1

3. 代码示例

Java版本

class Solution {public int firstMissingPositive(int[] nums) {for(int i=0; i<nums.length; i++){while(nums[i] > 0 && nums[i] <= nums.length && nums[i] != i+1 && 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 i=0; i<nums.length; i++){if(nums[i] != (i+1) || nums[i] <= 0)return i+1;}return nums.length+1;}
}

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] != i+1 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] != i+1:return i+1return l+1

在上述的while循环中nums[i] != nums[nums[i]-1]是为了避免数组中有值重复的情况,如果不加出处理就会一直被置换,陷入死循环。

http://www.yayakq.cn/news/464731/

相关文章:

  • 网站前期基础建设 怎么写网站代做多少钱
  • 青岛集团网站建设用dw做的网站
  • 文化传播公司网站备案内容营销和传统营销的区别
  • 万网做网站花多少钱长春企业网站制作优化
  • 网站建设 天佩营销注册公司流程和费用联系人不一样
  • 上海市建设工程 安全质量网站wordpress修改描述
  • 新浪微博可以做网站吗飓风seo刷排名软件
  • 西宁高端网站制作公司做音乐网站的选题背景
  • 微信微网站统计公众号会员卡管理系统
  • wordpress怎么自动手机版谷歌搜索优化
  • 自适应网站建设专家江西专业的企业网站建设公司
  • 网站推广 软件制作企业网站是怎么收费的
  • 济南网站设计哪家好深圳集智邦是网站建设公司
  • 企业建设H5响应式网站的5大好处哈尔滨百度引擎
  • html5高端网站建设网站设计与制作简单吗
  • 网站漂浮物怎么做酒店网站收入如何做帐务处理
  • 重庆建网站城选快忻科技悉心网站建设网站形象
  • 工商网站官网入口做钓鱼网站软件
  • 华为网站建设招聘如何提升做网站的效率
  • dw做网站首页wordpress导航仿制
  • 查找网站wordpress注册报名
  • 深圳营销型网站定制美食网站的建设
  • 苏州seo网站推广公司中国菲律宾省
  • 计算机网络设计报告enspseo实战密码读后感
  • 制作网页创建站点的步骤百度竞价推广投放
  • 泰安一级的企业建站公司邢台网站开发公司
  • 辽宁建设银行企业银行官方网站wordpress显示分类目录
  • 房产中介网站建设技巧h5网站和传统网站区别
  • 上海建设工程咨询网站网页设计软件dream
  • 大淘客可以做几个网站网站建设中心怎么做