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

电子商务网站建设与运营 说课宁波网站制作与推广价格

电子商务网站建设与运营 说课,宁波网站制作与推广价格,自适应网站的缺点,新手怎么做网站优化数组中的重复数据 数组中重复的数字 错误的集合 以第三题,错误的集合为例 对于这样的问题,有很简单的解决方式,先遍历一次数组,用一个哈希表记录每个数字出现的次数,然后遍历一次 [1…N],看看那个元素重…

数组中的重复数据

数组中重复的数字

错误的集合

以第三题,错误的集合为例

对于这样的问题,有很简单的解决方式,先遍历一次数组,用一个哈希表记录每个数字出现的次数,然后遍历一次 [1…N],看看那个元素重复出现,那个元素没有出现,就 OK 了。

但问题是,这个常规解法需要一个哈希表,也就是 O(N) 的空间复杂度。你看题目给的条件那么巧,在 [1…N] 的几个数字中恰好有一个重复,一个缺失

O(N) 的时间复杂度遍历数组是无法避免的,所以我们可以想想办法如何降低空间复杂度,是否可以在 O(1) 的空间复杂度之下找到重复和缺失的元素呢?

思路分析

这个问题的特点是,每个元素和数组索引有一定的对应关系。

我们现在自己改造下问题,暂且将 nums 中的元素变为 [0…N-1],这样每个元素就和一个数组索引完全对应了,这样方便理解一些。

如果说 nums 中不存在重复元素和缺失元素,那么每个元素就和唯一一个索引值对应,对吧?

现在的问题是,有一个元素重复了,同时导致一个元素缺失了,这会产生什么现象呢?会导致有两个元素对应到了同一个索引,而且会有一个索引没有元素对应过去

那么,如果我能够通过某些方法,找到这个重复对应的索引,不就是找到了那个重复元素么?找到那个没有元素对应的索引,不就是找到了那个缺失的元素了么?

核心是将元素就看成是索引,通过这个索引去访问数据,通过将每个索引访问的元素变成负数,以表示这个索引被对应过一次了,循环的时候发现通过索引访问的元素是负数,那么就说明他是重复的

int[] findErrorNums(int[] nums) {int n = nums.length;int dup = -1;for (int i = 0; i < n; i++) {int index = Math.abs(nums[i]);// nums[index] 小于 0 则说明重复访问if (nums[index] < 0)dup = Math.abs(nums[i]);elsenums[index] *= -1;}int missing = -1;for (int i = 0; i < n; i++)// nums[i] 大于 0 则说明没有访问if (nums[i] > 0)missing = i;return new int[]{dup, missing};
}

然后对于index的偏移需要额外处理一下

http://www.dinnco.com/news/34978.html

相关文章:

  • 有什么软件做短视频网站百度指数分析数据
  • 内江网站制作游戏推广代理加盟
  • 域外网站是seo北京优化
  • 网站内链设置百度关键词搜索怎么做
  • 自己做的网站如何兼容ie11网络广告营销的案例
  • 温州做网站费用湖南长沙最新情况
  • centos 7.2 wordpress优势的seo网站优化排名
  • 做视频网站的技能seo优化技术
  • 宜昌教育培训网站建设网络营销教案ppt
  • 做类似淘宝的网站设计需要什么微信指数怎么看
  • 个人网站备案核验单百度推广业务员
  • 怎么做找券网站阿里云免费域名
  • 免费b2b外贸平台seo公司北京
  • 六安做网站的淘宝关键词挖掘工具
  • WordPress的king免费太原seo
  • 合肥网站推广外包公司结构优化是什么意思
  • 网页设计师岗位介绍澳门seo关键词排名
  • 衡州网站建设seo网站推广的方式和方法
  • 做网站比特币钱包企业网络推广服务
  • 广州住房和城乡建设委员会网站国内搜索引擎排名第一的是
  • 建设一个网站要多seo教程论坛
  • 电子手表网站自媒体营销的策略和方法
  • 深圳网站制作的公司怎么样手机app软件开发
  • 兰州企业网站建设多少钱软文模板
  • 深圳网站建设黄浦网络-骗钱免费开发网站
  • 成都免费网站制作seo网站优化方案
  • springmvc做网站电商培训机构哪家强
  • 海报模板网惠州百度关键词优化
  • 静态网页制作实验报告全达seo
  • 做网站如何调字体格式广告牌