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

阿里巴巴网站分类板块做全屏购物网站黑白

阿里巴巴网站分类板块做全屏,购物网站黑白,修改wordpress登陆后台,网站建设外包服务公司创业计划书面试题3 数组中重复的数字 题 目 #xff1a;找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0 ~ n-1的范围内。数组中某些数字是重复的#xff0c;但不知道有几个数字重复了#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0 ~ n-1的范围内。数组中某些数字是重复的但不知道有几个数字重复了也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如如果输入长度为7 的数组2,3, 1,0, 2, 5, 3 , 那么对应的输出是重复的数字2 或者3。先把输入的数组排序。从排序的数组中找出重复的数字是一件很容易的事情只需要从头到尾扫描排序后的数组就可以了。排序一个长度为n的数组需要O(nlogn)的时间还可以利用哈希表来解决这个问题。从头到尾按顺序扫描数组的每个数字每扫描到一个数字的时候都可以用0(1)的时间来判断哈希表里是否已经包含了该数字。如果哈希表里还没有这个数字就把它加入哈希表。如果哈希表里已经存在该数字就找到一个重复的数字。这个算法的时间复杂度是0(n)但它提高时间效率是以一个大小为o(n)的哈希表为代价的。我们再看看有没有空间复杂度是0(1)的算法。如果这个数组中没有重复的数字那么当数组排序之后数字i将出现在下标为 i 的位置。由于数组中有重复的数字有些位置可能存在多个数字同时有些位置可能没有数字。现在让我们重排这个数组。从头到尾依次扫描这个数组中的每个数字。当扫描到下标为i的数字时首先比较这个数字(用m表示)是不是等于i. 如果是则接着扫描下一个数字如果不是则再拿它和第 m 个数字进行比较。如果它和第m个数字相等就找到了一个重复的数字(该数字在下标为i和m 的位置都出现了)如果它和第m个数字不相等就把第i个数 字和第m个数字交换把m 放到属于它的位置。接下来再重复这个比较、 交换的过程直到我们发现一个重复的数字例子数组{2,3,1,0,2,5,3};数组的第0个数字(从0开始计数)是2与他的下标不匹配因此将a[0]元素指定的坐标2互换换完之后的结果是{1,3,2,0,2,5,3};这个时候0号元素是1仍然和小标不匹配继续更换更换之后的结果是{3,1,2,0,2,5,3};接下来继续交换第0号元素和第3号元素{0,1,2,3,2,5,3};0号元素、1号元素、2号元素、3号元素均匹配当4号元素对应的数值是2和2号元素重复因此找到了一个重复的数字 class Solution { public:int findRepeatNumber(vectorint nums) {int length nums.size();/* if (length 0){return -1;}for (int i 0; i length; i) {if (nums[i] 0 || nums[i] length){return false;}}*/for (int i 0; i length; i) {while (nums[i] ! i){if (nums[i] nums[nums[i]]){return nums[i];} else{int temp nums[i];nums[i] nums[temp];nums[temp] temp;}}}return -1;} };Leetcode对应的题目地址 第二种解法 使用map第一次遍历元素key是元素的本身数值value是元素出现的次数存储所有的元素和出现次数的相关信息第二次遍历元素查找元素出现的次数大于等于2的返回对应的元素 int findRepeatNumber_3(std::vectorint nums) {std::mapint,int map{};int length nums.size();for (int i 0; i length; i) {map[nums[i]];}for (auto i map.cbegin(); i ! map.cend(); i) {if (i-second 2){return i-first;}}return -1;}第三种解法 使用无需map将元素加入map的时候就要判定是不是之前已经存在了此元素如果存在此元素将其返回 int findRepeatNumber_2(std::vectorint nums) {std::unordered_mapint,int map{};int length nums.size();for (int i 0; i length; i) {if (map.find(nums[i]) ! map.end()){return nums[i];} else{map[nums[i]];}}return -1;}第四种解法 将元素按照次序进行排序然后判断相邻元素是否相等如果相等则将其返回
http://www.zqtcl.cn/news/982583/

相关文章:

  • 现在流行用什么语言做网站ppt设计教程网
  • 高端网站哪种好培训机构不退钱最怕什么举报
  • 青岛个人建站模板wordpress没有链接
  • 网上学习网站有哪些厦门城乡建设局网站
  • 怎样创建网站快捷方式个人制作一个网站的费用
  • 恒信在线做彩票的是什么样的网站软件开发流程管理
  • 网站服务器地址在哪里看艺术学校网站模板
  • 郑州中心站网站建设价格标准新闻
  • 电子商务网站管理互联网营销师主要做什么
  • 门户网站指的是什么凯里网络公司建设网站
  • 网站接入服务商查询0建设营销型网站步骤
  • 长沙如何做百度的网站小型网站建设实训教程
  • 昆明网络公司网站网站建设经费请示
  • 手机端网站欣赏wordpress 文章rss
  • 做网站一定要实名认证吗国外免费空间网站申请
  • 阿里云网站空间主机长春网站建设设计
  • 龙华网站建设yihekj长沙招聘网站制作
  • 网站怎么做文本跳出来网络规划设计师有用吗
  • 室内设计网站官网大全中国那些企业做网站做得好
  • 状态管理名词解释网站开发网络营销推广方案案例
  • 做网站需要几大模板河南中国建设信息网
  • 成都温江网站建设空间网页版
  • 做美股的数据网站邢台网站建设公司哪家好一点
  • 青岛即墨网站开发查询建设用地规划许可证在哪个网站
  • 成都APP,微网站开发芜湖企业100强
  • 江门搜索引擎网站推广网约车多少钱一辆
  • 北京高端网站建设宣传请人做软件开发的网站
  • h网站建设长沙本地公众号
  • 苏州工业园区劳动局网站做不了合同建域名做网站
  • 内蒙古建设兵团网站组建网站开发团队