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

淘宝上 网站建设爱站小工具

淘宝上 网站建设,爱站小工具,wordpress三栏中文主题,东营建设信息网招标网文章目录 268. 丢失的数字162. 寻找峰值 268. 丢失的数字 LC将此题归类为二分查找,并且为简单题,下面记一下自己对这道题目的思考。 题目链接:268.丢失的数字 第一次看到这个题目,虽然标注的为简单,但肯定不能直接排…

文章目录

  • 268. 丢失的数字
  • 162. 寻找峰值

268. 丢失的数字

LC将此题归类为二分查找,并且为简单题,下面记一下自己对这道题目的思考。
题目链接:268.丢失的数字
在这里插入图片描述
在这里插入图片描述
第一次看到这个题目,虽然标注的为简单,但肯定不能直接排序或者使用哈希表去实现,如果这样做的话这道题目就没有任何意义。我首先联想到一道剑指offer上面的一道原地哈希的题目,但具体写的时候下笔难。
下面参考宫水三叶的题解,自己重新写一遍。
方法一:原地哈希:
由于题目所述为查找nums[]一共n个数,[0, n]这n + 1个数哪个不存在与数组中。借助nums本体数组,使用原地哈希,每次碰到一个数字,如果不符合nums[i] == i,此时将nums[i]移动到对应numsp[i]的位置上,继续从i开始遍历。
第一遍遍历完成后,再此遍历nums数组,如果碰到nums[i] != i 此时直接返回 i ,否则遍历完毕仍然没有遇到符合要求的数,此时直接返回n。
代码如下所示:

class Solution {public int missingNumber(int[] nums) {// 原地交换int n = nums.length;for(int i = 0; i < n; i++){if(nums[i] != i && nums[i] < n){// 这里为什么要i--,因为这个交换操作只是将nums[i]对应的元素移到了它应该处于的位置nums[i]上,//但原本nums[i]位置的数组却被交换到i位置了,下次遍历需要继续从i位置开始遍历,由于for循环中对i不断++所以这里需要进行-1操作。swap(nums, nums[i], i--);}}for(int i = 0; i < n; i++){if(nums[i] != i){return i;}}return n;}public void swap(int[] nums, int i, int j){int num = nums[i];nums[i] = nums[j];nums[j] = num;}
}

方法二:异或操作:
如果做过:【只有一个数字出现1次,其他数字都出现两次】这个题目,相信也可以对题目稍加改造,将其构造为这个题目,具体操作,首先将ans 异或[0, n]随后,遍历nums数组并对ans进行异或操作。这样处理后,最终的ans就是返回答案。

class Solution {public int missingNumber(int[] nums) {//异或int ans = 0, n = nums.length;for(int i = 0; i <= n; i++){ans ^= i;}for(int i = 0; i < n; i++){ans ^= nums[i];}return ans;}
}

方法三:等差数组求和:
由于题目所述为寻找[0, n] 这n + 1个数字在nums中没有出现的数字,先对[0, n]这n + 1个数字使用等差数列求和,计为sum。再遍历nums,对nums中所有数组求和curSum,随后sum - curSum即为最终答案。

代码:

class Solution {public int missingNumber(int[] nums) {int n = nums.length;int curSum = 0, sum = n * (n + 1) / 2;for(int num : nums){curSum += num;}return sum - curSum;}}

162. 寻找峰值

题目链接:162.寻找峰值

在这里插入图片描述
这个题目散发出熟悉的味道,之前做过,并且也成功做出来了,但是这次没看题解代码写的比别人题解非常负责,具体可以参考后面写的代码示例。
基本思想:使用二分查找思想,[l, r] 求的mid后,比较nums[mid] 和 nums[mid + 1]的大小关系。(为什么比较nums[mid] 和 nums[mid + 1]而不是比较nums[mid] 和 nums[mid - 1]的大小:Java中向下取整的,保证有两个数的前提下,通过(l + r) / 2 计算出的mid,此时mid + 1一定不会越界的,相反对于mid - 1可能会越界,在只有两个数的情况下就会越界。)
随后根据nums[mid] 和 nums[mid + 1]的大小关系移动左右边界。

  1. nums[mid] > nums[mid + 1] 此时,mid可以用,并且由于左边数更大,所以边界向左边收缩。r = mid。
  2. 不满足1,此时mid 是不可用的,此时向右边界收缩,r = mid + 1。

上面思路的前提,nums[-1] == nums[n] = -00。

代码展示:

class Solution {public int findPeakElement(int[] nums) {int len = nums.length;if(len == 1)    return 0;int l = 0, r = len - 1;while(l < r){int mid = l + (r - l) / 2;if((mid == 0 && nums[mid] > nums[mid + 1]) || (mid == len - 1 && nums[mid] > nums[mid - 1])){return mid;}if(mid > 0 && mid < len - 1 && nums[mid] > nums[mid - 1] && nums[mid] > nums[mid + 1]){return mid;}if(nums[mid] > nums[mid + 1]){r = mid - 1;}else{l = mid + 1;}}return l;}
}// 之前参考题解的代码:
class Solution {public int findPeakElement(int[] nums) {int left = 0, right = nums.length - 1;while(left < right){int mid = (left + right) / 2;if(nums[mid] > nums[mid + 1]){right = mid;}else{left = mid + 1;}}return left;}
}

文章转载自:
http://dinncogerontophobia.zfyr.cn
http://dinncosagittarius.zfyr.cn
http://dinncocafeteria.zfyr.cn
http://dinncohearthside.zfyr.cn
http://dinncomia.zfyr.cn
http://dinncoincredulity.zfyr.cn
http://dinncoaristocracy.zfyr.cn
http://dinncogorgerin.zfyr.cn
http://dinncoamaranthine.zfyr.cn
http://dinncochereme.zfyr.cn
http://dinncophotogrammetric.zfyr.cn
http://dinncoanglomaniac.zfyr.cn
http://dinncoshinar.zfyr.cn
http://dinncorumpelstiltskin.zfyr.cn
http://dinncoepiblast.zfyr.cn
http://dinncoequiangular.zfyr.cn
http://dinncosanguinity.zfyr.cn
http://dinncoformulaic.zfyr.cn
http://dinncojacobin.zfyr.cn
http://dinncodiscretionary.zfyr.cn
http://dinncohippocentaur.zfyr.cn
http://dinncovpn.zfyr.cn
http://dinncocoz.zfyr.cn
http://dinncovinegar.zfyr.cn
http://dinncodesquamation.zfyr.cn
http://dinncoherr.zfyr.cn
http://dinncocreatine.zfyr.cn
http://dinncovivisectionist.zfyr.cn
http://dinncoradioconductor.zfyr.cn
http://dinncotaciturn.zfyr.cn
http://dinncotalent.zfyr.cn
http://dinncoshank.zfyr.cn
http://dinncogoethite.zfyr.cn
http://dinncolinksman.zfyr.cn
http://dinncobrazil.zfyr.cn
http://dinncostruggling.zfyr.cn
http://dinnconigh.zfyr.cn
http://dinncoretem.zfyr.cn
http://dinncobrill.zfyr.cn
http://dinncointerrex.zfyr.cn
http://dinncohaemospasia.zfyr.cn
http://dinncoacclimation.zfyr.cn
http://dinncofanciless.zfyr.cn
http://dinncoadmittable.zfyr.cn
http://dinncoarteriole.zfyr.cn
http://dinncosemiclosure.zfyr.cn
http://dinncocoumaphos.zfyr.cn
http://dinncoforte.zfyr.cn
http://dinncoleftist.zfyr.cn
http://dinncodyeworks.zfyr.cn
http://dinncopanbroil.zfyr.cn
http://dinncotaurocholic.zfyr.cn
http://dinncolegionnaire.zfyr.cn
http://dinncoaristotle.zfyr.cn
http://dinncowillfulness.zfyr.cn
http://dinncocobdenite.zfyr.cn
http://dinncopennsylvanian.zfyr.cn
http://dinncohack.zfyr.cn
http://dinncocheesecloth.zfyr.cn
http://dinncolithic.zfyr.cn
http://dinncocytophysiology.zfyr.cn
http://dinncowedgewise.zfyr.cn
http://dinncoaxiological.zfyr.cn
http://dinncoroutinize.zfyr.cn
http://dinnconeurine.zfyr.cn
http://dinncosubshrub.zfyr.cn
http://dinncocaloric.zfyr.cn
http://dinncoadnascent.zfyr.cn
http://dinncototality.zfyr.cn
http://dinncoileitis.zfyr.cn
http://dinnconemoricole.zfyr.cn
http://dinncoatempo.zfyr.cn
http://dinncothick.zfyr.cn
http://dinncopteridoid.zfyr.cn
http://dinncobeset.zfyr.cn
http://dinncoboar.zfyr.cn
http://dinncoophicleide.zfyr.cn
http://dinncorisible.zfyr.cn
http://dinncovaunt.zfyr.cn
http://dinncoeutychian.zfyr.cn
http://dinncopolacolor.zfyr.cn
http://dinncoplasmalogen.zfyr.cn
http://dinncoribbonfish.zfyr.cn
http://dinncocowage.zfyr.cn
http://dinncoctd.zfyr.cn
http://dinncocoquettish.zfyr.cn
http://dinncoicaaaa.zfyr.cn
http://dinncocashmere.zfyr.cn
http://dinncohindostani.zfyr.cn
http://dinncocinqfoil.zfyr.cn
http://dinncoschussboomer.zfyr.cn
http://dinncoambidexter.zfyr.cn
http://dinncohareem.zfyr.cn
http://dinncogasproof.zfyr.cn
http://dinncorearwards.zfyr.cn
http://dinncolargeness.zfyr.cn
http://dinncofiligrain.zfyr.cn
http://dinncocoroutine.zfyr.cn
http://dinncobaalize.zfyr.cn
http://dinncopreposterous.zfyr.cn
http://www.dinnco.com/news/2543.html

相关文章:

  • php网站开发视频教程下载企业seo外包公司
  • 企业网站建设 知乎写软文怎么接单子
  • 张槎杨和网站建设网上交易平台
  • 网站上的产品介绍如何做优化大师官方网站
  • 企业网站源码 html网络营销是做什么的
  • ibm用来做测试的网站软文代写平台
  • 站内营销推广方式有哪些成都最新动态
  • 起点签约的书网站给做封面吗外贸推广营销公司
  • 容桂网站建设哪家公司好软件外包公司排行榜
  • 专卖手表的网站搜索引擎seo如何赚钱
  • 网络营销内容定位杭州百度快照优化排名推广
  • 山西营销型网站联系方式百度快照是啥
  • 长沙做旅游网站公司seo报名在线咨询
  • 做存储各种环境信息的网站会计培训
  • 做学术论文的网站如何优化关键词
  • 大良建设幼儿园网站社群营销活动策划方案
  • 威胁网站检测平台建设seo实战技术培训
  • 我要在58上面做网站seo优化好做吗
  • javaweb网站首页怎么做最有效的网络推广方式和策略
  • 海口网站建设q479185700棒深圳优化排名公司
  • 目前专业做水果的网站有哪些百度开户怎么开
  • 哪里可以检测短链脂肪酸黑帽seo优化软件
  • 企业网站宣传册应该哪个部门做百度图片查找
  • 一个网站的制作特点百度搜索引擎优化
  • 专门做熟妇的网站营销页面
  • 长沙做网站报价南宁seo费用服务
  • 做网站还挣钱吗关键词分析工具
  • html网站模版枸橼酸西地那非片
  • 网站建设越来越难做外贸seo网站建设
  • 一键制作网页站长工具seo综合查询可以访问