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

做电影网站什么后果东莞关键词seo

做电影网站什么后果,东莞关键词seo,网络游戏的利与弊,最实用的上网网址一览表题目链接:LCR 070. 有序数组中的单一元素 - 力扣(LeetCode) 题目: 在一个排序的数组中,除一个数字只出现一次之外,其他数字都出现了两次,请找出这个唯一只出现一次的数字。例如,在…

题目链接:LCR 070. 有序数组中的单一元素 - 力扣(LeetCode)

题目

在一个排序的数组中,除一个数字只出现一次之外,其他数字都出现了两次,请找出这个唯一只出现一次的数字。例如,在数组 [1, 1, 2, 2, 3, 4, 4, 5, 5] 中,数字 3 只出现了一次。

分析

如果将题目的条件稍稍改动,输入的数组没有经过排序,其他条件不变,那么这就是另一类很经典的面试题。由于两个相同的数字异或的结果是 0,因此如果将数组中所有数字异或,最终的结果就是那个唯一只出现一次的数字。我们需要计算数组中所有数字的异或,如果数组的长度为 n,那么这种解法的时间复杂度是 O(n)。

现在题目增加了一个条件,输入的数组是排序的,前面基于异或的解法仍然有效。但是面试官增加一个条件,可能是希望应聘者能够想出新的更好的解法。既然是在排序数组中查找某个数字,就尝试应用二分查找算法。

由于只出现一次的数字的左边有偶数个数字,因此它的下标 x 一定是偶数(下标从 0 开始),可以在偶数下标范围内二分查找。二分查找的目标是找到第一个 nums[x] nums[x + 1] 的偶数下标

可以将数组中的数字每两个分成一组,最初的若干组的两个数字都是相同的。但遇到只出现一次的数字之后,情况发生变化。这个只出现一次的数字和后面的数字结合成一组,导致后面所有组的两个数字都不相同。由此可见,只出现一次的数字正好是第一个两个数字不相同的分组的第 1 个数字

初始化,二分查找的左边界是 0,右边界是数组的最大偶数下标,即数组的长度减 1(因为数组的长度是奇数)。每次取左右边界的平均值 mid 作为判断的下标,如果 mid 是奇数,则将 mid 减 1,确保 mid 是偶数,然后比较 nums[mid] 和 nums[mid + 1] 是否相等,如果相等,则 mid < x,调整左边界;否则 mid >= x,调整有边界。调整边界之后继续二分查找,直到确定下标 x 的值

代码实现

class Solution {
public:int singleNonDuplicate(vector<int>& nums) {int left = 0;int right = nums.size() - 1;while (left < right){int mid = (left + right) / 2;if (mid % 2 != 0)--mid;if (nums[mid] == nums[mid + 1])left = mid + 2;elseright = mid;}return nums[left];}
};
http://www.yidumall.com/news/14155.html

相关文章:

  • 济南网站建设公司搜索广告是什么意思
  • 做男女的那个视频网站软件培训机构
  • 徐州网站建设软文世界平台
  • 人力外包公司有哪些seo排名快速优化
  • 常州做网站yongjiaweb第三方平台推广引流
  • 委托 网站开发 进什么费用301313龙虎榜
  • 广州网站建设建航seo快排
  • 企业cms建站系统如何进行seo
  • 做电影网站还能赚钱上海app网络推广公司电话
  • 网站制作公司南宁游戏推广赚佣金
  • 中小型网站建设价位网站seo分析报告
  • 展示型型网站建设seo工具优化软件
  • 阳江有哪些建站公司网购网站十大排名
  • wordpress阿里云推送seo网站排名后退
  • 建站公司现状互联网推广方式有哪些
  • 深圳市官网网站建设哪家好网站设计模板
  • 建一个网站要多少钱怎么建个网站
  • 关于网站建设的入门书公司网站制作流程
  • 嘉兴做网站的公司有哪些买外链网站
  • 手机免费建网站软件正规seo排名多少钱
  • 旅游社做的最好的网站seo整体优化步骤怎么写
  • 网站建设服务领域西安网是科技发展有限公司
  • 建网站和建网店的区别seo关键词软件
  • 毕节网站怎么做seo西安seo按天收费
  • 东莞网站优化指导市场营销
  • 网站后台管理系统制作软件艾滋病多久可以查出来
  • 个人网站设计与开发网站排名提高
  • 判断网站到期个人免费网站申请注册
  • 做网站前怎么写文档乔拓云网站建设
  • 真人性做爰免费网站seo 优化是什么