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

C++ 之LeetCode刷题记录(二十七)

😄😊😆😃😄😊😆😃

开始cpp刷题之旅。

目标:执行用时击败90%以上使用 C++ 的用户。

在这里插入图片描述

136. 只出现一次的数字

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

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

示例 1 :

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

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

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

解题:

这题看上去简单,但是考虑到效率性还是有很多讲究的。

有几种比较简单的方法

法一:

循环遍历数组,直接使用find()查找另一个,如果没有找到说明这个数就是题目需要的那个,直接返回,有就继续。 但是这样效率会差点,你之前找的数下一次可能还要继续查找一次,浪费效率。

法二:

先对数组进行排序。循环遍历排序后的数组,如果当前数和下一个数相等,则说明有重复的,i+1; 当前数如果和下一个不等,就直接返回。 这样可以避免重复查找的问题,但是会涉及到排序。

法三

使用异或。 一个数与本身异或等于0,0与其他数异或等于那个数,这句话很重要。

这样只要遍历一次即可,也不用考虑排序的问题,最适合这道题了。

class Solution {
public:int singleNumber(vector<int>& nums) {int res=0;for(int &i:nums)res^=i;        return res;}
};

直接返回最后的结果,肯定就是那个单独出现的数,这个解法很巧妙。

看下提交记录:

在这里插入图片描述

相关文章:

  • 微服务框架go-zero集成swagger在线接口文档
  • 科普类(遥操作)——快速索引
  • 比瓴科技入围软件供应链安全赛道!为关键信息基础设施安全建设注入新动力
  • 银行数据仓库体系实践(8)--主数据模型设计
  • 如何手机搜智慧职教答案?3个受欢迎的搜题分享了 #微信#学习方法#笔记
  • 深度学习入门笔记(七)卷积神经网络CNN
  • FreeRTOS任务挂起以及延时部分源码分析
  • 计算机网络第4章(网络层)
  • 【数据结构】单向链表实现 超详细
  • DAO设计模式
  • Vue打包Webpack源码及物理路径泄漏问题解决
  • 【vue】报错 Duplicate keys detected 解决方案
  • 简单说说redis分布式锁
  • WPS Office18.7软件日常更新
  • 【译】在 Mac 上加速 PyTorch 训练
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • docker容器内的网络抓包
  • ESLint简单操作
  • Git初体验
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JS+CSS实现数字滚动
  • LeetCode算法系列_0891_子序列宽度之和
  • mysql外键的使用
  • Python十分钟制作属于你自己的个性logo
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React系列之 Redux 架构模式
  • Ruby 2.x 源代码分析:扩展 概述
  • vue 个人积累(使用工具,组件)
  • Vue ES6 Jade Scss Webpack Gulp
  • 给github项目添加CI badge
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 七牛云假注销小指南
  • 前端js -- this指向总结。
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 我建了一个叫Hello World的项目
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (4)(4.6) Triducer
  • (NSDate) 时间 (time )比较
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (四) 虚拟摄像头vivi体验
  • (四)JPA - JQPL 实现增删改查
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***监测系统的构建(chkrootkit )
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net Remoting常用部署结构
  • .NET大文件上传知识整理
  • .ui文件相关
  • @Resource和@Autowired的区别
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [C++] 统计程序耗时