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

怎么做教育培训网站贵金属网站建设

怎么做教育培训网站,贵金属网站建设,怎么做网站图标,安平丝网网站建设解题思路&#xff1a; 左边界查找​​&#xff1a; 初始化指针和开始位置 left、right、start。在 left < right 的条件下循环&#xff1a;计算中间索引 mid&#xff0c;避免整数溢出&#xff08;mid left (right - left) / 2&#xff09;。若中间元素等于目标值&#x…

在这里插入图片描述

解题思路:

  1. 左边界查找​​:
  • 初始化指针和开始位置 left、right、start。在 left <= right 的条件下循环:
  • 计算中间索引 mid,避免整数溢出(mid = left + (right - left) / 2)。
  • 若中间元素等于目标值,记录当前位置并继续向左半部分搜索。
  • 若中间元素小于目标值,说明目标值在右半部分,更新 left = mid + 1。
  • 若中间元素大于目标值,说明目标值在左半部分,更新 right = mid - 1。
  1. 右边界查找:
  • 初始化指针和结束位置 left、right、end。在 left <= right 的条件下循环:
  • 计算中间索引 mid,避免整数溢出(mid = left + (right - left) / 2)。
  • 若中间元素等于目标值,记录当前位置并继续向右半部分搜索。
  • 若中间元素小于目标值,说明目标值在右半部分,更新 left = mid + 1。
  • 若中间元素大于目标值,说明目标值在左半部分,更新 right = mid - 1。

Java代码:

class Solution {public int[] searchRange(int[] nums, int target) {int start = binarySearchLeft(nums, target);if (start == -1) return new int[]{-1, -1};int end = binarySearchRight(nums, target);return new int[]{start, end};}private int binarySearchLeft(int[] nums, int target) {int left = 0;int right = nums.length - 1;int start = -1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {start = mid;right = mid - 1;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return start;}private int binarySearchRight(int[] nums, int target) {int left = 0;int right = nums.length - 1;int end = -1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {end = mid;left = mid + 1;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return end;}
}

复杂度分析:

  • 时间复杂度: O(logn)。两次二分查找各消耗 O(logn) 时间,总体仍为O(logn)。
  • 空间复杂度: O(1)。仅使用了常数额外空间。
    在这里插入图片描述

解题思路:

  1. 二分查找​​: 初始化指针 left 和 right,计算中间位置 mid 循环查找。
  2. 检查中点​​: 若 nums[mid] 等于目标值,直接返回 mid。
  3. 判断左半段是否有序​​: 若 nums[left] <= nums[mid],说明左半段有序。若目标值在 (nums[left], nums[mid]) 范围内,则在左半段继续搜索,否则转向右半段。
  4. 判断右半段是否有序​​: 若左半段无序,则右半段必然有序。若目标值在 (nums[mid], nums[right]) 范围内,则在右半段继续搜索,否则转向左半段。

Java代码:

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

复杂度分析:

  • 时间复杂度: O(log n)。每次二分将搜索范围缩小一半。
  • 空间复杂度: O(1)。仅使用常数额外空间。
http://www.dtcms.com/wzjs/781116.html

相关文章:

  • wordpress导入大小.h临沂做网络优化的公司
  • lol网站模板旅行社销售网站建设方案
  • 网站做得好的公司网站建设网址导航网
  • 网站设计师如何让客户信任你做pc端网站包括哪些
  • 做网站前期预算网站建设河南公司
  • 专业社交网站建设公司wordpress修改首页模板
  • 做网站专题模板crm客户管理系统 wordpress
  • 聊城网站建设的地方中国城乡住房和城乡建设部网站首页
  • 网站制作邯郸做网站横幅技巧
  • 如何访问英文网站什么是百度搜索推广
  • 滑县网站建设服务营销型网站四大功能
  • 网站恶意注册e建网官网
  • 网站上的图用美图秀秀做可以吗跟建设通一样的网站
  • 重庆网站定制开发sw网站建设
  • php搭建网站软件下载商业网站建设的意义
  • 好的平面设计灵感网站线上营销话术
  • 公司网站 免费模板温州网站设计
  • 怎么自己做刷东西网站中国建设教育网官网是什么网站
  • 网站与云平台区别工信部网站备案系统
  • 成品网站软件大全下载陕西省门户网站建设政策
  • vs做网站怎么做窗体网站数据库网络错误
  • 校园门户网站系统建设关键技术河南省建设监理协会新网站
  • 山西省建设厅政务中心网站跨境电商是什么平台
  • 做网站的步骤 优帮云电子商务简介
  • 关于 公司网站建设的通知做网站logo的网站
  • 旅游包车网站最新模板品牌推广三元论
  • 网站关键词在线优化wordpress前台会员中心
  • 茂港网站开发公司长沙百度seo优化电话
  • 数字域名有哪些网站好网站建设公司选择哪家好
  • 在线网站地图生成器网络竞价托管公司