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

商丘网站建设模板投稿平台

商丘网站建设模板,投稿平台,做网站必须要电脑吗,山东省建设执业师网站题目描述: 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 &#…

题目描述:

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入:nums = [2,2,1]
输出:1

示例 2 :

输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

输入:nums = [1]
输出:1

提示:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

通过次数

975.3K

提交次数

1.3M

通过率

72.8%

思路和题解:

思路一:暴力枚举:

每次从数组中取出一个数,然后从剩余的数中查找,如果找不到就说明这个数只出现一次。时间复杂度O(n^2),空间复杂度O(1),时间复杂度不符合要求

思路二:排序

数组中只有一个数出现了一次,其余都出现了两次,可以先将数组排序,然后再遍历一次数组,如过某个数字和前面的数后面的数都不想等,那就是只出现一次的数。时间复杂度O(nlog n),空间复杂度O(1),空间复杂度符合条件,时间复杂度不知道不知道算不算线性。

思路三:建立映射表

建立一个map,遍历每一个数字,遍历时查找有无该数对应的键,如果有就删除,如果无就加入,遍历完后剩下的那个就是只出现一个的数。

思路四:位运算

先将要返回的数字ans设为0,ans依次与数组里的每一个数进行按位异或运算,由于异或运算是可交换的,运算完成后,出现两次的数会因为每一位都相同而变为0,出现一次的数和0进行异或位运算而保留下来。时间复杂度O(n),空间复杂度O(1),都符合要求。代码:

class Solution{
public:int singleNumber(vector<int>& nums){int ans=0;for(int i=0;i<nums.size();i++)ans^=nums[i];return ans;}
};

http://www.mmbaike.com/news/87074.html

相关文章:

  • 做网站如何获利专业做网站公司
  • logopond设计网站软文广告案例500字
  • 网站附件下载表格怎么做网销怎么做
  • java与php哪个做网站好深圳短视频推广
  • 百度没有收录网站广告投放渠道有哪些
  • 如何用wordpress做淘宝客湖南网站优化
  • 8小8x人成免费观看网页2022年搜索引擎优化指南
  • wordpress ai株洲seo优化哪家好
  • 网站开发工作周记网络营销策划步骤
  • 欧美简约风格网站设计外贸平台排名
  • 网站安全维护怎样制作网页新手自学入门
  • 个人网站怎么做引流关键词排名查询官网
  • 做网站的参考文献有哪些网站视频播放代码
  • 东莞万江最新疫情提高seo排名
  • 某企业集团网站建设方案论文湖南seo推广
  • 上海优化网站关键词设计公司排名
  • 旅游网站模板下载seo教学视频教程
  • 网站建设中页面关键词排名优化易下拉霸屏
  • 凡科网怎么修改网站国内新闻大事
  • 宁波网络公司哪家好长沙谷歌优化
  • 针织东莞网站建设技术支持seo网络推广机构
  • wordpress 高级编辑seo从入门到精通
  • php建站软件湖南正规seo公司
  • 前端怎么在猪八戒网站接单做网络营销有什么特点
  • 石桥铺网站建设公司搜索数据
  • 公司品牌推广方案抖音优化是什么意思
  • 百度网站建设微信封面百度推广业务员电话
  • 卖渔具的亲戚做网站网站营销方案模板
  • 百度显示网站名现在感染症状有哪些
  • 网站顶部地图代码怎么做合肥seo推广外包