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

网站建设中什么是一栏如何制作自己的网站图?

网站建设中什么是一栏,如何制作自己的网站图?,邯郸手机网站建设费用,上海网站建设,迈【算法题解答一】二分法 接上文 【算法方法总结一】二分法的一些技巧和注意事项 二分法相关题目如下: 34.在排序数组中查找元素第一和最后一个位置 使用 左闭右闭,[left,right]关键在于 nums[mid] target 的部分找 第一个 target 的过程中&#xff0…

【算法题解答·一】二分法

接上文 【算法方法总结·一】二分法的一些技巧和注意事项


二分法相关题目如下:

34.在排序数组中查找元素第一和最后一个位置

  • 使用 左闭右闭[left,right]
  • 关键在于 nums[mid] == target 的部分
  • 第一个 target 的过程中,如果 nums[mid] == target,说明 mid 已经满足条件,但 mid 前面 可能还有相同的 target,把 right 更新为mid - 1,继续往 mid 找;
  • 最后一个 target 的过程中,如果 nums[mid] == target,说明 mid 已经满足条件,但 mid 后面 可能还有相同的 target,把 left 更新为mid + 1,继续往 mid 找。
class Solution {public int[] searchRange(int[] nums, int target) {int[] ans = new int[] { -1, -1 }; // 存结果 {第一,最后}int len = nums.length;if (len == 0) return ans;int left = 0, right = len - 1; // 左闭右闭// 找第一个 target,普通的二分查找while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {ans[0] = mid; // 找到后填入ans[0]中right = mid - 1; // 往 mid 前继续找} else if (nums[mid] > target) {right = mid - 1;} else { // nums[mid] < targetleft = mid + 1;}}// 重新初始化left = 0;right = len - 1;// 找最后一个 target,普通的二分查找while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {ans[1] = mid; // 找到后填入ans[1]中left = mid + 1; // 往 mid 后继续找} else if (nums[mid] > target) {right = mid - 1;} else { // nums[mid] < targetleft = mid + 1;}}return ans;}
}

35.搜索插入位置简单

  • 使用 左闭右开[left,right)
class Solution {public int searchInsert(int[] nums, int target) {int n = nums.length;// 左闭右开,[left,right)int l = 0, r = n;while (l < r) {int mid = l + (r - l) / 2;if (target == nums[mid]) {return mid;} else if (target > nums[mid]) {l = mid + 1;} else {r = mid;}}return l; // 如果不知道返回什么,可以自己模拟一下}
}

74.搜索二维矩阵

  • 使用 左闭右开[left,right)
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;// 有序,所以使用二分搜索,[left,right)int l = 0, r = n * m;while (l < r) {int mid = l + (r - l) / 2;int x = mid / n; // 行索引int y = mid % n; // 列索引if (matrix[x][y] == target) {return true;} else if (matrix[x][y] > target) {r = mid;} else {l = mid + 1;}}return false; // 循环结束还没返回 true,说明没有找到,直接返回 false}
}

33.搜索旋转排序数组

  • 使用 左闭右闭[left,right]
  • 第一类 2 3 4 5 6 7 | 1 这种,也就是 nums[l] <= nums[mid]。此例子中是 2 <= 5。这种情况下,前半部分有序。如果 nums[l] <= target < nums[mid],则在前半部分找,否则去后半部分找。
  • 第二类 6 7 | 1 2 3 4 5 这种,也就是 nums[l] > nums[mid]。此例子中就是 6 > 2。这种情况下,后半部分有序。如果 nums[mid] < target <= nums[r],则在后半部分找,否则去前半部分找。
class Solution {public int search(int[] nums, int target) {int l = 0, r = nums.length - 1;while (l <= r) {int mid = l + (r - l) / 2;if (nums[mid] == target) {return mid;}// 前半段有序,后半段无序if (nums[l] <= nums[mid]) {// target 在前半段if (target >= nums[l] && target < nums[mid]) {r = mid - 1;} else { // target 在后半段l = mid + 1;}} else { // 前半段无序,后半段有序// target 在后半段if (target <= nums[r] && target > nums[mid]) {l = mid + 1;} else { // target 在前半段r = mid - 1;}}}return -1; // 没有找到 target}
}

153.寻找旋转排序数组中的最小值

在这里插入图片描述

  • 使用 左闭右开[left,right)
class Solution {public int findMin(int[] nums) {int l = 0, r = nums.length;while (l < r) {int mid = l + (r - l) / 2;// 断崖最小值在mid右边if (nums[mid] > nums[nums.length - 1]) {l = mid + 1; // 往右半段找} else { // 断崖最小值在mid左边,或为midr = mid; // mid也有可能是最小值}}return nums[l];}
}

4.寻找两个正序数组的中位数困难

暴力法很简单,但是二分法很有难度,先挖个坑之后填


文章转载自:

http://mWjvteRp.wjhdn.cn
http://OMhQBDVZ.wjhdn.cn
http://w20AoOBO.wjhdn.cn
http://2dnXwdij.wjhdn.cn
http://RCWQMtl9.wjhdn.cn
http://5lNcrmqT.wjhdn.cn
http://JNb4YaPJ.wjhdn.cn
http://ryL06QFp.wjhdn.cn
http://ef9zJire.wjhdn.cn
http://ujwfs7V3.wjhdn.cn
http://849JaqPJ.wjhdn.cn
http://YCKKUKih.wjhdn.cn
http://o0EfNedD.wjhdn.cn
http://ha7bJOZy.wjhdn.cn
http://rcOy8s43.wjhdn.cn
http://2nzjXi2Z.wjhdn.cn
http://ekUAOYFy.wjhdn.cn
http://XQaVCjZI.wjhdn.cn
http://BZNMMDee.wjhdn.cn
http://OTYPsuZ4.wjhdn.cn
http://qdB7eynU.wjhdn.cn
http://vpdPuIqR.wjhdn.cn
http://vsmMyENa.wjhdn.cn
http://rqoU29li.wjhdn.cn
http://cmQwdR6r.wjhdn.cn
http://37T5ZJSv.wjhdn.cn
http://VuTUHnla.wjhdn.cn
http://ZVSySwST.wjhdn.cn
http://YfV4kAeP.wjhdn.cn
http://Lfpvs0vj.wjhdn.cn
http://www.dtcms.com/wzjs/760207.html

相关文章:

  • 泉州外贸网站开发公司织梦网站优化
  • 宁波网站开发定制网站建设新模式
  • 湖南新备案的网站如何免费创建个人网站
  • 济南国画网站济南网站建设公司wordpress 插件 销量
  • Wordpress ajax 相册沈阳seo关键词排名优化软件
  • 石家庄营销型网站建设费用网站建设的要求有哪些
  • 网站负责人核验照织梦微信网站模板
  • 简易app开发软件优化大师是什么意思
  • 成都营销网站设计微信开发者工具的介绍
  • 聊城定制化网站建设广州网页推广公司
  • 出售自己的网站网店运营规划
  • 一键做网站的软件沭阳网站设计
  • 贵阳网站建设哪家公司好上海建设教育网站
  • 国内优秀网站欣赏注册域名和建立网站的过程
  • 岳阳博物馆网站wordpress 手机菜单栏插件
  • 佛山建设网站公司哪家好单页的网站怎么做
  • 比较好的网站建设技术开发wordpress 转载
  • 威海电子商务网站建设沧州外贸推广公司
  • 系部网站建设中期检查表上海p2p网站建设
  • 免费网站入口2021天津艺匠做网站怎么样
  • 中铁建设集团集采网站网站代运营服务公司
  • 网站推广活动方案南阳网站制作
  • 进一步加强区门户网站建设管理亚马逊的免费网站
  • 网站软件大全免费下怎么通过网络宣传自己的产品
  • vue做网站的实例中关村手机之家官网
  • 网站 模板怎么在百度上推广自己的产品
  • 企业网站的内容免费空间网址
  • 齐河县建设局网站网站建设专有名词
  • 网站建设培训哪里好百度商桥代码怎么加到网站上
  • 什么 电子商务网站建设与管生活+装修 北京卫视