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

中山企业推广网站制作/怎么优化自己网站

中山企业推广网站制作,怎么优化自己网站,网站 app 共同架构,dreamweaver教程做网站今天是母亲节,祝全天下的母亲节日快乐。 本文首发于馆主君晓的博客,05-08 题目内容 442. 数组中重复的数据,题目截图如下: 题目分析 这个题目第一眼一般就能够想到使用哈希表来做,还是老步骤。我们先来转述下题目的意思…

今天是母亲节,祝全天下的母亲节日快乐。
本文首发于馆主君晓的博客,05-08

题目内容

  442. 数组中重复的数据,题目截图如下:

image-20220508112559546

题目分析

  这个题目第一眼一般就能够想到使用哈希表来做,还是老步骤。我们先来转述下题目的意思,题目是说,给你一个长度为n的整数数组,并且数组里的所有整数都在范围[1,n]之间,并且每个整数要么出现一次,要么出现两次,然后你需要找出出现两次的数字,并且将其返回。

  思路一,使用c++unordered_map,我们只需要使用一次循环,循环遍历数组,将数组的元素作为key放在map里,如果key已经存在了那么久将其放入结果数组中,循环结束,我们的元素也就找出来了。

class Solution {
private:unordered_map<int,int> map;
public:vector<int> findDuplicates(vector<int>& nums) {int n = nums.size();vector<int> res;for(int i = 0;i<n;i++){if(map.find(nums[i])!=map.end()){map[nums[i]]+=1;res.push_back(nums[i]);}else{map[nums[i]] = 1;}}return res;}
};

image-20220508113614540

  但是上面的思路耗时太久,我们可以尝试第二种思路,首先排序然后使用双指针,按照升序的方式进行排序,之后一前一后指针,如果两个指针所指的元素相等,那么就将元素放入结果数组。

class Solution {
public:vector<int> findDuplicates(vector<int>& nums) {// 排序+双指针vector<int> res;int n = nums.size();if(n==1){return res;}sort(nums.begin(),nums.end());int back = 0,front = 1;while(front<n){if(nums[back]==nums[front]){res.push_back(nums[back]);}back++;front++;}return res;}
};

image-20220508160524515

  上面的思路的确可以,但是其实不符合题目要求,题目要求时间复杂度为o(n),空间复杂度为常数。于是就有了下面的第三种方式,原地哈希。直接看代码可能比较好懂:

class Solution {
public:vector<int> findDuplicates(vector<int>& nums) {// 原地数组vector<int> res;int n = nums.size();if(n==1){// 特殊处理return res;}for(int i = 0;i<n;i++){// 获取nums[i]的绝对值 因为可能为负数 负数是因为我们取反了int x = abs(nums[i]);if(nums[x-1]>0){// 下标所处位置的元素大于0 说明还没被取负 取负的都是我们第一次碰见的数nums[x-1] =-nums[x-1];}else{// 已经取负了 所以现在这次相当于第二次碰见这个数 那么就加入结果数组res.push_back(x);}}return res;}
};

image-20220508161409158

代码实现

  代码实现如上所示。

结语

  父母在,不远游,游必有方。

http://www.jmfq.cn/news/5302783.html

相关文章:

  • 网站查询备案信息/菏泽seo
  • 阿里云虚拟主机建站教程/上海网络公司seo
  • 绍兴网站建设公司/保定seo推广公司
  • 好看的网站哪里找/搜索引擎优化排名优化培训
  • 建设企业网站的重要性/一个产品的营销方案
  • 做网站的背景图片格式大小/经典软文广告
  • 大气医院网站源码/百度识图以图搜图
  • 网站建设引领者/爱站网长尾关键词挖掘工具下载
  • 做网站的背景图片要多大/广告免费推广网
  • 网站制作的语言/杭州做seo的公司
  • wordpress 按钮连接在哪里设置/优化大师电脑版官方
  • 做公众号app,网站,app/百度大数据
  • 上海做网站好的公司/珠海seo推广
  • 新疆建设网二级域名网站/厦门百度推广开户
  • 必要网站用什么做的/经典软文范例大全
  • 阿里巴巴做网站多少钱/品牌推广活动方案
  • 怎样进网站空间/福建省人民政府
  • 买个网站多少钱/网络搭建教程
  • wordpress熊掌号百度主动提交/优化大师软件大全
  • 微信网站/dw软件怎么制作网页
  • 金融网站建设多少钱/建立个人网站
  • 北京建网站需要多少钱/百度推广助手
  • 青岛城阳软件网站开发/seo怎样优化网站
  • 怎样做网站导航栏/网络营销策划ppt范例
  • 公司网站建设哪家正规/搜索引擎营销总结
  • 所有北京网站建设公司/推广软件排行榜前十名
  • 接网站制作/百度怎么发广告
  • 蓝色 网站/河南疫情最新消息
  • 企业为何要做网站/网站设计就业
  • 石景山 网站建设/营销推广的平台