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

六安商城网站建设地址华为网站建设目标

六安商城网站建设地址,华为网站建设目标,陕西省高速建设集团网站,保定网站制作套餐❓645. 错误的集合 难度#xff1a;简单 集合 s 包含从 1 到 n 的整数。不幸的是#xff0c;因为数据错误#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了…❓645. 错误的集合 难度简单 集合 s 包含从 1 到 n 的整数。不幸的是因为数据错误导致集合里面某一个数字复制了成了集合里面的另外一个数字的值导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数再找到丢失的整数将它们以数组的形式返回。 示例 1 输入nums [1,2,2,4] 输出[2,3] 示例 2 输入nums [1,1] 输出[1,2] 提示 2 n u m s . l e n g t h 1 0 4 2 nums.length 10^4 2nums.length104 1 n u m s [ i ] 1 0 4 1 nums[i] 10^4 1nums[i]104 思路 法一交换数组元素 最直接的方法是先对数组进行排序这种方法时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)。本题可以以 O ( n ) O(n) O(n) 的时间复杂度、 O ( 1 ) O(1) O(1) 空间复杂度来求解。 主要思想是通过交换数组元素使得数组上的元素在正确的位置上这样只有 重复的数 出现在 丢失整数 的位置上。 法二哈希表 重复的数字在数组中出现 2 次丢失的数字在数组中出现 0次其余的每个数字在数组中出现 1 次。因此可以使用哈希表记录每个元素在数组中是否出现 如果出现两次则找到了重复的数将所有数都存到哈希表再遍历哈希表则可找到丢失的数 代码(Java、C) 法一交换数组元素 Java class Solution {public int[] findErrorNums(int[] nums) {for(int i 0; i nums.length; i){while(nums[i] ! i 1 nums[i] ! nums[nums[i] - 1]){swap(nums, i, nums[i] - 1);}}for(int i 1; i nums.length; i){if(nums[i - 1] ! i){return new int[]{nums[i - 1], i};}}return null;}private void swap(int[] nums, int i, int j){int tmp nums[i];nums[i] nums[j];nums[j] tmp;} }C class Solution { public:vectorint findErrorNums(vectorint nums) {for(int i 0; i nums.size(); i){while(nums[i] ! i 1 nums[i] ! nums[nums[i] - 1]){swap(nums, i, nums[i] - 1);}}for(int i 1; i nums.size(); i){if(nums[i - 1] ! i){return {nums[i - 1], i};}}return {};}void swap(vectorint nums, int i, int j){int tmp nums[i];nums[i] nums[j];nums[j] tmp;} };法二哈希表 Java class Solution {public int[] findErrorNums(int[] nums) {HashSetInteger s new HashSet();int repeat 0, lose 0;for(int num : nums){if(s.contains(num)) repeat num;s.add(num);}for(int i 1; i nums.length; i){if(!s.contains(i)){lose i;break;}}return new int[]{repeat, lose};} }C class Solution { public:vectorint findErrorNums(vectorint nums) {unordered_setint s;int repeat 0, lose 0;for(int num : nums){if(s.find(num) ! s.end()) repeat num;s.insert(num);}for(int i 1; i nums.size(); i){if(s.find(i) s.end()){lose i;break;}}return {repeat, lose};} };运行结果 复杂度分析 时间复杂度 O ( n ) O(n) O(n)其中 n 为数组的长度。空间复杂度 O ( 1 ) O(1) O(1)法一只需常量级空间而哈希表需要创建大小为 O ( n ) O(n) O(n) 的哈希表空间复杂度为 O ( n ) O(n) O(n)。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我 leetCode专栏每日更新 注 如有不足欢迎指正
http://www.hkea.cn/news/14366464/

相关文章:

  • 成品网站模板下载电脑公司网站系统源码
  • 青岛城阳网站制作关于建设网站的经费请示
  • 黄冈做网站技术支持的品牌推广广告
  • 石家庄大型公司建站网站建设网站及上传
  • 研究院网站建设方案中国十大传媒公司
  • 政协网站建设方案建筑行业网站开发
  • 无锡营销型网站建设公共网络建设指导书
  • 网站开发方式有汕头百姓网二手车交易市场
  • 厦门网站外包敦化市住房和城乡建设局网站
  • 买了云服务器怎么做网站网站开发建设兼职
  • 英文网站建设运营企业网站建设报价单
  • 做网站的哪里好网站后端架构如何做
  • 用vue做网站一般用什么组件库深圳微信网站公司
  • 温州免费建站网站备案编号查询
  • 网站模板 单页做微商必会的软件网站
  • 抄袭网站后台会侵权吗外包做网站需要多少钱
  • 咪豆建站建立官网需要多少钱
  • 网站模板 jsp做网站的销售团队
  • 宿迁专业网站建设公司网站建设潮州
  • 游戏网站建设论文如何将域名和网站绑定
  • 网站界面友好免费微信小程序商城官网
  • 怎么买域名建网站九台网络推广
  • 网站空格 教程网站建设功能图
  • 一些房产网站是怎么做的江干区网站建设
  • 网站建设与管理提纲建设网站有哪些方法
  • 网站服务器维护技术WordPress干什么的
  • php完整电商网站开发源码网站建设需要的职位
  • 易语言编程可以做网站么阿里+wordpress
  • 营销型网站建设申请域名时公司类型的域名后缀一般是网站 建设网站
  • 上海好的高端网站建北京十大教育培训机构排名