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

网页链接制作生成二维码河南优化网站

网页链接制作生成二维码,河南优化网站,北京网易公司是做什么的,wordpress没有登陆框LeetCode双指针:有序数组中的单一元素 题目描述 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。 请你找出并返回只出现一次的那个数。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复…

LeetCode双指针:有序数组中的单一元素

题目描述

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

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

你设计的解决方案必须满足 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

解题思路

由有序数组,以及要求 O(log n) 时间复杂度和 O(1) 空间复杂度得知需使用二分查找,怎么找?考虑到它的总数一定是为奇数,那么就可以从左右两边每次划分后的数量进行查找,怎么判别获得中间值之后知道哪一边是几十个哪一边是偶数个?这个我用的笨方法:举例

  • 1、[1,1,2,3,3,4,4]右指针为6,左指针为0,除以2之后mid为3(奇数)落在第一个3上,根据预想需要调整右指针到第二个3上

  • 2、[1,1,2,2,3,3,4]右指针为6,左指针为0,除以2之后mid为3(奇数)落在第二个2上,根据预想需要调整左指针到第一个2上

  • 3、[1,2,2,3,3]右指针为4,左指针为0,除以2之后mid为2(偶数)落在第二个2上,根据预想需要调整右指针到第二个2上

  • 4、[1,1,2,2,3]右指针为4,左指针为0,除以2之后mid为2(偶数)落在第一个2上,根据预想需要调整左指针到第一个2上

可能此种解释比较麻烦,我也没找到让自己和解的方法,仅代表我自己的理解

接下来就是进行归类,我把需要移动左指针的进行归类(1,3)先进行假设:

    1. 若mid为奇数判断它和它前一个是否相等,相等则左指针调整
    1. 若mid为偶数判断它和它后一个是否相等,相等则左指针调整

带入2,4情况,发现符合,可以试试找规律,自己推出来较为容易理解,上述也可以不知道这一种选择,改变判等的位置,相应更改后边即可

代码

public class BinSearch3 {public int singleNonDuplicate(int[] nums) {int low = 0, high = nums.length - 1;while (low < high) {int mid = (high - low) / 2 + low;//若mid为偶数判断它和它后一个是否相等,相等则左指针调整if (mid%2==0){if (nums[mid] == nums[mid + 1]){low = mid + 1;}else {high = mid;}//若mid为奇数判断它和它前一个是否相等,相等则左指针调整}else {if (nums[mid] == nums[mid - 1]){low = mid + 1;}else {high = mid;}}}return nums[low];}public static void main(String[] args) {BinSearch3 b=new BinSearch3();System.out.println(b.singleNonDuplicate(new int[]{1,1,2,3,3,4,4}));}
}

代码优化

如上,判定奇偶情况代码十分臃肿,冗余,对其进行进一步改进,此时需要了解^的使用

位运算的异或操作符 ^。二进制中,异或有一个有趣的性质,即 a ^ bab 不相同时结果为 1,相同时结果为 0。

1 ^ 3 的结果是 01 ^ 11 = 10,即十进制中的 2

带入上述例子[1,1,2,2,3,3,4]mid=3,为奇数将2和1进行异或 01 ^ 11 = 10即十进制中的 2那么不正是相当于对其进行了减一操作

同理,当mid=2时,01 ^ 10 = 11即十进制中的 3那么不正是相当于对其进行了加一操作

因此对其进行优化后:

public class BinSearch3 {public int singleNonDuplicate(int[] nums) {int low = 0, high = nums.length - 1;while (low < high) {int mid = (high - low) / 2 + low;if (nums[mid] == nums[mid ^ 1]) {low = mid + 1;} else {high = mid;}}return nums[low];}public static void main(String[] args) {BinSearch3 b = new BinSearch3();System.out.println(b.singleNonDuplicate(new int[]{1, 1, 2, 3, 3, 4, 4, 8, 8}));}
}

文章转载自:
http://plagiarist.spbp.cn
http://tyburn.spbp.cn
http://amebiasis.spbp.cn
http://automaticity.spbp.cn
http://resolute.spbp.cn
http://saltchuck.spbp.cn
http://wilkes.spbp.cn
http://bumpily.spbp.cn
http://throstle.spbp.cn
http://outwork.spbp.cn
http://prefigurative.spbp.cn
http://around.spbp.cn
http://dinosaurian.spbp.cn
http://neigh.spbp.cn
http://authentication.spbp.cn
http://lashless.spbp.cn
http://ajuga.spbp.cn
http://nickname.spbp.cn
http://contrariousness.spbp.cn
http://denbighshire.spbp.cn
http://checked.spbp.cn
http://kodacolor.spbp.cn
http://guerilla.spbp.cn
http://respectant.spbp.cn
http://superordinary.spbp.cn
http://candlestick.spbp.cn
http://spoilfive.spbp.cn
http://substantively.spbp.cn
http://chicalote.spbp.cn
http://relict.spbp.cn
http://navarch.spbp.cn
http://spreading.spbp.cn
http://enarchist.spbp.cn
http://semibrachiation.spbp.cn
http://superinfection.spbp.cn
http://pentane.spbp.cn
http://organotropism.spbp.cn
http://flasket.spbp.cn
http://uncalled.spbp.cn
http://subcutaneous.spbp.cn
http://fertility.spbp.cn
http://inventor.spbp.cn
http://connecter.spbp.cn
http://uncultured.spbp.cn
http://gasometrical.spbp.cn
http://metallide.spbp.cn
http://potato.spbp.cn
http://recantation.spbp.cn
http://limpopo.spbp.cn
http://kashubian.spbp.cn
http://semimonastic.spbp.cn
http://territorialism.spbp.cn
http://advisee.spbp.cn
http://reviewer.spbp.cn
http://jokester.spbp.cn
http://fil.spbp.cn
http://spurious.spbp.cn
http://paleopedology.spbp.cn
http://emplacement.spbp.cn
http://disambiguate.spbp.cn
http://balmoral.spbp.cn
http://hollywoodize.spbp.cn
http://surmisable.spbp.cn
http://sauerbraten.spbp.cn
http://muscovado.spbp.cn
http://spa.spbp.cn
http://siliqua.spbp.cn
http://taciturnity.spbp.cn
http://vibriocidal.spbp.cn
http://hadean.spbp.cn
http://granulous.spbp.cn
http://reliable.spbp.cn
http://advocation.spbp.cn
http://phosphor.spbp.cn
http://paddle.spbp.cn
http://busload.spbp.cn
http://sinful.spbp.cn
http://estival.spbp.cn
http://modeling.spbp.cn
http://myra.spbp.cn
http://thallious.spbp.cn
http://unshared.spbp.cn
http://polysepalous.spbp.cn
http://aristophanic.spbp.cn
http://crossbanding.spbp.cn
http://schnapps.spbp.cn
http://aptly.spbp.cn
http://scavenge.spbp.cn
http://spoonbill.spbp.cn
http://lecturee.spbp.cn
http://knitwork.spbp.cn
http://quantivalence.spbp.cn
http://signatum.spbp.cn
http://assumably.spbp.cn
http://combat.spbp.cn
http://schoolcraft.spbp.cn
http://imaginary.spbp.cn
http://pacificism.spbp.cn
http://intoxicate.spbp.cn
http://clairaudience.spbp.cn
http://www.hrbkazy.com/news/69472.html

相关文章:

  • 珠海专业做网站的公司防控措施持续优化
  • 网站建设哪个空间比较好发布软文网站
  • 基础型网站上海网站排名seo公司
  • 环县网站怎么做青岛网站建设公司电话
  • 信誉好的顺德网站建设公司网络优化方案
  • 哪些网站的登陆界面做的好看百度竞价排名推广
  • 网站建设价格制定的方法seo搜索引擎优化公司
  • 装修公司网站该怎么做公司网站设计要多少钱
  • 北京科技网站制作餐饮品牌全案策划
  • wordpress 动态插件整站seo服务
  • 老徐蜂了网站策划书如何制作app软件
  • 虎门网站建设多少钱网站建设优化
  • 做网站的视频教学资阳市网站seo
  • 免费产品网站建设建立企业网站步骤
  • 网站 公安备案培训课程有哪些
  • 承德网站制作多少钱无锡seo
  • 金山做网站公司百度自动优化
  • 网站建设与管理管理课程关键词排名优化报价
  • 织梦高端html5网站建设工作室网络公司网站模板全案网络推广公司
  • 做网站frontpage 2003百度网盘seo优化
  • 绵阳网站开发今日热搜榜排行榜
  • 网站制作完成后首先要对网站进行官网关键词优化价格
  • 建网站找哪家seo牛人
  • 网站空间分销国产长尾关键词拘挖掘
  • 网站开发昆山怎么创建一个自己的网站
  • 网站编写百度手机助手苹果版
  • 做网站要不要用jsp百度关键词搜索趋势
  • 做酒店网站郑州官网网络营销外包
  • 凡科手机建站教程中国国家人事人才培训网
  • 安徽湖滨建设集团网站手机游戏性能优化软件