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

高端定制开发网站宁波模板建站代理

高端定制开发网站,宁波模板建站代理,企业管理软件开发软件公司,广州平面设计学徒招聘1. 有序数组中的单一元素(540) 题目描述: 算法原理: 二分查找解题关键就在于去找到数组的二段性,这里数组的二段性是从单个数字a开始出现然后分隔出来的,如果mid落入左半部分那么当mid为偶数时nums[mid1]…

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

题目描述:
在这里插入图片描述
算法原理:
二分查找解题关键就在于去找到数组的二段性,这里数组的二段性是从单个数字a开始出现然后分隔出来的,如果mid落入左半部分那么当mid为偶数时nums[mid+1]等于nums[mid],当mid为奇数时nums[mid]等于nums[mid-1],mid落入右半部分则相反。
细节:
循环内的判断条件首先需要判断mid是偶数还是奇数,接着还要判断相等的关系,是比较麻烦的。我们发现规律当mid为偶数异或1时就会得到mid+1,当mid为奇数异或1时就会得到mid-1,因此我们的判断条件直接简化为nums[mid]是否等于nums[mid^1]。
代码如下:

class Solution {public int singleNonDuplicate(int[] nums) {int left = 0, right = nums.length - 1;while (right > left) {int mid = left + (right - left) / 2;if (nums[mid] == nums[mid ^ 1]) {left = mid + 1;} else {right = mid;}}return nums[right];}
}

题目链接

2. 寻找旋转排序数组中的最小值 II(154)

题目描述:
在这里插入图片描述

算法原理:
nums数组的二段性体现在nums[right],前半部分旋转过去的值是大于等于nums[right]的,后半部分的值都是小于等于nums[right]。不过这题需要注意的地方就是因为数值是可以重复的,所以当nums[mid]等于nums[right]的时候我们是不知道mid是落在前半部分还是后半部分的,为了解决这种情况我们直接将right向左移动一位即可,移动之后因为我们求的是最小值,所以不会影响结果,并且达到了一种去重的效果。
代码如下:

class Solution {public int findMin(int[] nums) {int left = 0, right = nums.length - 1;while (left < right) {int mid = left + (right - left) / 2;if (nums[mid] > nums[right]) {left = mid + 1;} else if (nums[mid] < nums[right]) {right = mid;} else {right -= 1;}}return nums[right];}
}

题目链接

3. 搜索二维矩阵(74)

题目描述:
在这里插入图片描述

算法原理:
这一题可以使用朴素二分查找的思想来解决,将多维数组看作一维的数组,此时铺开来left=0、right=m*n-1,得到的mid位置的值在二维数组中可以表示为matrix[mid/n]matrix[mid%n],这里的m就是数组的维度数,n就是每个维度的元素个数。
代码如下:

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int left = 0, right = m * n - 1;while (left <= right) {int mid = left + (right - left) / 2;if (matrix[mid / n][mid % n] > target) {right = mid - 1;} else if (matrix[mid / n][mid % n] < target) {left = mid + 1;} else {return true;}}return false;}
}

题目链接

http://www.yayakq.cn/news/378387/

相关文章:

  • 渭南网站建设风尚网络长春是几线城市2021
  • 动易网站内容管理系统四川省红鱼洞水库建设管理网站
  • 域名网站账号网站建设毕业设计中期报告
  • 网站首页布局设计模板小枫云主机
  • 贵州省住房城乡建设网站阿里云怎么上传网站
  • 做网站投入政务微网站建设方案
  • 个人业务网站带后台好看的免费网站模板下载 迅雷下载地址
  • 网站需要访客上传图片该怎么做怎么重装wordpress
  • 公司做网站公司安卓免费翻外墙的app
  • 安阳网络营销的几种方式中山百度seo
  • 中砼建设有限公司网站企业网站流量
  • 特殊教育学校网站建设方案seo岗位
  • 做视频网站设备需求android wordpress
  • 门户网站源码入驻网站建设wuliankj
  • 做明信片的网站wordpress做图片站
  • 正规的网站制作电话怎么查公司的邮箱
  • 免费十八种禁用网站百度医生在线问诊
  • 园林景观 网站建设室内设计师官网
  • 律所网站建设国队男子接力赛程序员接单网站
  • 赶集网网站建设分析提高美誉度的网络营销方式
  • 做视频网站需要什么高端技术开县做网站
  • 嘉兴网站建设服务东莞哪家做网站很有名的公司
  • 什么网站立刻买东西国内大型网站建设公司
  • 个人网站有备案吗免费做网站网站的软件
  • 怎么免费制作网站平台济南济阳网站建设
  • 租一个服务器建网站多少钱沈阳网势科技有限公司
  • 网站qq代码全椒县建设局网站
  • 5118网站怎么做的如何下载js做的网站
  • wordpress三站合一怎样做网站的后台
  • 网站服务费一年多少钱鹤岗网站建设