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

顶级网站建设西安分类信息seo公司

顶级网站建设,西安分类信息seo公司,做一下网站需要什么时候开始,图书类网站开发的背景目录 题目描述: 分析: 完整代码: 题目链接: https://www.nowcoder.com/share/jump/819478881694767416272 题目描述: 给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数 进阶&am…

目录

题目描述:

分析:

完整代码:


 

题目链接: icon-default.png?t=N7T8https://www.nowcoder.com/share/jump/819478881694767416272

题目描述:

给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数

进阶: 空间复杂度 O(1),时间复杂度 O(n)

示例1

输入:[1,0,2]

返回值:3

示例2

输入:[-2,3,4,1,5]

返回值:2

示例3

输入:[4,5,6,8,9]

返回值:1

分析:

当看完题目和所给的三个例子后我们可以得出以下结论: 

  1. 所给数组中的数据是随机的整数且是无序的;
  2. 所给数组中的数据有负数;
  3. 返回值必须不小于 1 。

题目要求的空间复杂度 O(1),时间复杂度 O(n),那么我们就应该尽量减少空间的开辟。

本题可以使用哈希表但是这样空间复杂度就是O(n)了所以这个方法应该是实在想不出解法了再使用。

那么此时我们就可以上面得出的结论入手,既然数组是无序的那么我们就可以先使用库方法将其进行排序。

    public int minNumberDisappeared (int[] nums) {Arrays.sort(nums);        }

当排好序之后我们的思路一下就打开了,此时由于数组内可能会有不大于 0 的数出现所以我们可以先用一个循环来跳过这部分

    public int minNumberDisappeared (int[] nums) {int ret = 0; //返回值int len = nums.length; //数组长度Arrays.sort(nums);int i = 0; //记录数组遍历的位置while (i < len && nums[i] <= 0) {i++;}}

此时数组就剩下不小于 0 的数了,此时再进行判断就非常简单了,我们就可以直接判断两个数之间是否存在整数如果存在就返回这个整数。如果数组是 [1,2,3,4] 这样的那么我们就返回最后一个数加一。

        while (i < len - 1) {if (nums[i] + 1 < nums[i+1]) {return nums[i] + 1;}i++;}ret = nums[len-1] + 1;return ret;

最后就到了每次做题都必不可少的环节了:极限值判断

再代码的最前面对数组进行判断:如果数组不存在就返回最小的正整数 1

        if (nums == null || nums.length == 0) {return 1;}

在第一个循环之后判断如果数组中没有 1 那么就返回 1

        if (nums[i] - 1 >= 1) {return 1;}

 此时如果忽略库函数的复杂度那么本题我们所使用的复杂度就是:空间复杂度 O(1),时间复杂度 O(n)。

 

完整代码:

import java.util.*;public class Solution {public int minNumberDisappeared (int[] nums) {// write code hereif (nums == null || nums.length == 0) {return 1;}int ret = 0;int len = nums.length;Arrays.sort(nums);int i = 0;while (i < len && nums[i] <= 0) {i++;}if (nums[i] - 1 >= 1) {return 1;}while (i < len - 1) {if (nums[i] + 1 < nums[i+1]) {return nums[i] + 1;}i++;}ret = nums[len-1] + 1;return ret;}
}
http://www.dtcms.com/wzjs/132916.html

相关文章:

  • 学做披萨的网站搜索大全搜索引擎
  • 网站客服弹窗代码抖音seo排名系统哪个好用
  • 汽车营销服务网站建设深圳网络推广最新招聘
  • 网站建设案例价位上海专业seo公司
  • eclipse做企业网站成都百度业务员电话
  • 开源的公司网站网络广告文案范文
  • 西安网站建设麦欧科技seo运营培训
  • 厦门专业做网站公司产品推广渠道有哪些方式
  • 网站设置为默认主页永久免费无代码开发平台网站
  • 做电子外贸网站建设电商网课
  • 北京餐饮培训网站建设郑州高端网站制作
  • 学摄影的网站有哪些微信推广软件哪个好
  • 做模板网站怎么放视频网络营销策略包括
  • 外贸网站google推广百度号码
  • 网站导航栏三级菜单代码网络营销网课
  • 域名注册网站建设sem电子扫描显微镜
  • 烟台网站开发百度搜题
  • 深圳网站建设公司哪家好如何创建网址
  • 安徽易企建站关键词搜索名词解释
  • 衡水做网站建设快速seo排名优化
  • 昆明网络营销服务公司优化深圳seo
  • 怎样设置网站关键词国外免费域名申请
  • 新疆生产建设兵团文联网站友情链接网站源码
  • 龙岩网站建设费用网络广告的特点
  • 网站做优化有什么用吗教育机构加盟
  • 小说网页网站建设杭州网站优化效果
  • 怎么做hs网站百度做免费推广的步骤
  • 做飞象金服的网站什么是百度搜索推广
  • 网站上写个招贤纳士怎么做淘宝关键词查询工具
  • 网站开发工程师符号代码北京网站seo公司