540. 有序数组中的单一元素

给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。

请你找出并返回只出现一次的那个数。

你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。

示例 1:

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

示例 2:

输入: nums =  [3,3,7,7,10,11,11]
输出: 10

提示:

  • 1 <= nums.length <= 10^5
  • 0 <= nums[i] <= 10^5

解题思路:

  • 以空间换时间,重新创建一个数组
  • 统计原数组中所有数字出现的频率
  • 遍历新数组,查找出现次数为1次的数字
int singleNonDuplicate(int* nums, int numsSize){int numCount[100000] = {0};//创建一个10^5大小的数组for(int i = 0; i < numsSize; i++){numCount[nums[i]]++;//统计原数组中数字的出现频率}for(int i = 0; i < numsSize; i++){if(numCount[nums[i]] != 2){return nums[i];//再次遍历,找到原数组中出现次数为1次的数字即可}}return -1;
}

LeetCode 540. 有序数组中的单一元素(c语言实现)相关推荐

  1. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42

    540. 有序数组中的单一元素 540. Single Element in a Sorted Array 题目描述 每日一算法2019/6/14Day 42LeetCode540. Single E ...

  2. LeetCode 540. 有序数组中的单一元素(位运算二分查找)

    1. 题目 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数. 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2示例 2: 输入: [3,3 ...

  3. LeetCode 540 有序数组中的单一元素

    题目描述 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这 个数. 题解 二分查找 代码 class Solution { public:int singleNonD ...

  4. LeetCode 540.有序数组中的单一元素

    目录 题目 示例 C语言代码 逐个异或 正常遍历 题目 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数. 示例 输入: nums = [1,1,2,3,3,4, ...

  5. 「 每日一练,快乐水题 」540. 有序数组中的单一元素

    ✅力扣原题: 力扣链接:540. 有序数组中的单一元素 ✅题目简述: 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个数. 你设计的解 ...

  6. 540. 有序数组中的单一元素 golang

    540. 有序数组中的单一元素 golang func singleNonDuplicate(nums []int) int {if len(nums) <= 1 {return nums[0] ...

  7. 540. 有序数组中的单一元素

    540. 有序数组中的单一元素 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数. 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 ...

  8. 540.有序数组中的单一元素

    难度:中等 目录 一.问题描述 二.思路 1.解题思路 1.思路一 2.思路二 2.极端情况判断 3.极端情况解决 三.解题 1.代码实现 1.方法一 2.方法二 2.时间复杂度 and 空间复杂度 ...

  9. leetcode算法题--有序数组中的单一元素

    原题链接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array/ 使用二分查找法,索引是偶数则应后面一个相等,索引为奇数则 ...

最新文章

  1. Linux 操作系统原理 — 文件系统 — 存储布局
  2. 布线时其他区域变黑、高亮Net时其他区域太黑
  3. Spring原理简述
  4. C#中用WebClient.UploadData 方法上载文件数据
  5. java比较时间sql_如何正确比较日期 java.sql.Date
  6. Python 圈精选文章
  7. 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
  8. java程序的运行方式
  9. 集中器到服务器传输协议,集中器130通讯协议(捷先数码).doc
  10. 7、数据表添加字段(三种方式)
  11. 李少白讲摄影-不放过一切光线 地坛书市新书首发圆满结束
  12. 怎样开启浏览器位置服务器,怎样打开浏览器定位服务器地址
  13. python 闲鱼_python之tk学习,闲鱼搜索-小记
  14. 苹果官网下架iPhone 8;破解百度网盘的Pandownload开发者被捕;三大运营商年内上线5G消息 | EA周报...
  15. 信息安全与管理2002_李付贵
  16. 第五章语言模型:n-gram
  17. Qt 5入门指南之Qt Quick编程示例
  18. 三星打印机通过无线网连接到服务器,多种连接方式 三星无线打印轻松享
  19. 继电器模块的的使用方法、引脚说明、内部结构、接线说明(超通俗超详细看了就能给别人讲)
  20. Hadoop服务启动出现Permission denied (publickey,password).

热门文章

  1. 小匕首-dotnet cli使用nuget指令
  2. android dlna uri,DLNA 在自己的APP 中添加投屏功能
  3. 约战计算机——战术分析
  4. 自相关系数与偏自相关系数,拖尾与截尾
  5. 飞链云元宇宙、区块链、3D数字艺术品、AI绘画共创数字新生态
  6. 你真的明白斯卡布罗集市歌词的真正含义吗?
  7. 昨日之日不可留,明日之日未可知,今日之日胜千金。
  8. 【解决方案】EasyGBS武警消防应急行业视频解决方案 4G便携单兵程视频监控指挥系统介绍
  9. PostgreSQL数据库管理工具pgAdmin4界面如何设置为中文显示
  10. 2019地理科学大会上的演讲稿(节选):空间大数据下的智慧地理信息