博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode:137. 只出现一次的数字 II
阅读量:4114 次
发布时间:2019-05-25

本文共 850 字,大约阅读时间需要 2 分钟。

题目链接:

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例 1:

输入:nums = [2,2,3,2]

输出:3

思路:

思路一:

对数组进行排序,相同的数相邻,每次取三个相邻的数字进行判断,是否相等,如果相等继续取后面三个数进行判断;如果不相等,则答案就是这三个相邻数字的第一个,因为经过排序之后,单个出现的数字是排在相同三个数字的后面的,所以一定是三个数字的开头。
另外在最后的时候也要判断,是否最后一个数字就是答案。

class Solution {
public: int singleNumber(vector
& nums) {
sort(nums.begin(),nums.end()); int ans=0; int f=0; int n=nums.size(); int last=nums[0]; for(int i=0;i+3

思路二:

对数组进行排序,遍历数组,用一个last,记录上一次出现的数字,f记录上一个数字出现的次数。
则分为以下几种情况:

  • 当前数字与上一个数字相同,则f++
  • 当前数字与上一个数字不同,此时分为两种情况,当f=1时,上一个数字就是答案,当f=3时,重新开始记录。
class Solution {
public: int singleNumber(vector
& nums) {
sort(nums.begin(),nums.end()); int ans=0; int f=1; int n=nums.size(); int last=nums[0]; int ok=0; for(int i=1;i

转载地址:http://lkgsi.baihongyu.com/

你可能感兴趣的文章
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>
mydata97的日期控件
查看>>
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>
Java 集合学习一 HashSet
查看>>