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

网站的优化seo建设一个网站的具体步骤

网站的优化seo,建设一个网站的具体步骤,网站建设的费用明细,洛阳青峰网络公司网站建设二分法网上有两种写法&#xff0c;一种左闭右闭&#xff0c;一种左闭右开&#xff0c;个人习惯左闭右闭的写法&#xff0c; 有序数组查找数 这是标准二分法&#xff0c;对应力扣的704. 二分查找&#xff1a; 求值为target的索引 int search(vector<int>& nums, i…

二分法网上有两种写法,一种左闭右闭,一种左闭右开,个人习惯左闭右闭的写法,

有序数组查找数

这是标准二分法,对应力扣的704. 二分查找:

  • 求值为target的索引
int search(vector<int>& nums, int target) {int left = 0; int right = nums.size();while (left < right){int mid = left + (right - left) / 2;if (nums[mid] > target)right = mid;else if (nums[mid] < target)left = mid + 1;elsereturn mid;}return -1;
}

在这里插入图片描述

求左右边界

二分法还可以求第一个大于target的索引和第一个小于target的索引

  • 求第一个大于target的值的索引(右边界)
int getRightIndex(vector<int>& nums, int target)
{int left = 0; int right = nums.size() - 1;int rightBorder = -2;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] > target)right = mid - 1;else{left = mid + 1;rightBorder = left;}}return rightBorder;
}

在这里插入图片描述

力扣的35. 搜索插入位置也可以用这个思路解决:

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0; int right = nums.size() - 1;int rightBorder = 0;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] > target)right = mid - 1;else{left = mid + 1;rightBorder = left;}}if (rightBorder == 0){return 0;}else{if (nums[rightBorder - 1] != target)return rightBorder;elsereturn rightBorder - 1;}}
};

当然只有一个target也有更简洁的写法,左闭右闭的写法里最后的left就是右边界了:

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0;int right = nums.size() - 1;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] > target)right = mid - 1;else if (nums[mid] < target)left = mid + 1;elsereturn mid;}return left;}
};
  • 求第一个小于target的值的索引(左边界)
int getLeftIndex(vector<int>& nums, int target)
{int left = 0; int right = nums.size() - 1;int leftBorder = -2;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] < target)left = mid + 1;else{right = mid - 1;leftBorder = right;}}return leftBorder;
}

在这里插入图片描述

使用上面两种方法求第一个大于target的索引和第一个小于target的索引对应的是力扣的34. 在排序数组中查找元素的第一个和最后一个位置。第一个target出现的索引和最后一个target出现的索引,对应的就是左边界+1和右边界-1,题目的完整代码:

class Solution {
public:int getRightIndex(vector<int>& nums, int target){int left = 0; int right = nums.size() - 1;int rightBorder = -2;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] > target)right = mid - 1;else{left = mid + 1;rightBorder = left;}}return rightBorder;}int getLeftIndex(vector<int>& nums, int target){int left = 0; int right = nums.size() - 1;int leftBorder = -2;while (left <= right){int mid = left + (right - left) / 2;if (nums[mid] < target)left = mid + 1;else{right = mid - 1;leftBorder = right;}}return leftBorder;}vector<int> searchRange(vector<int>& nums, int target) {int leftBorder = getLeftIndex(nums, target);int rightBorder = getRightIndex(nums, target);if (leftBorder == -2 || rightBorder == -2)return {-1, -1};if (rightBorder - leftBorder > 1)return {leftBorder + 1, rightBorder - 1};return {-1, -1};}
};
http://www.ds6.com.cn/news/8771.html

相关文章:

  • 网站建设需要通过哪些审批购买域名
  • 朝阳seo网站建设网络建站平台
  • 大连做网站团队北京seo服务销售
  • 深圳网站建设培训今天微博热搜前十名
  • 深圳市政府网站集约化建设方案注册网站免费注册
  • 台州 网站建设如何建立自己的网页
  • nodejs做网站容易被攻击吗seo性能优化
  • 论述网站建设整个流程济南疫情最新消息
  • 做电子相册的大网站抖音关键词搜索排名收费
  • 网站推广网络推广方p2p万能搜索引擎
  • 编程软件scratch免费下载手机版河南seo外包
  • 微信的微网站模板下载网站关键词优化公司哪家好
  • 知名的网站建设网络销售平台
  • 进行网站开发前 需要干什么情感营销案例
  • 中国八冶建设集团网站上海专业seo公司
  • 潍坊中企动力做的网站怎么样事件营销的案例有哪些
  • 网站建设书籍附光盘营业推广名词解释
  • 华为云怎么做网站百度商业账号登录
  • 手机网站首页新闻模板做博客的seo技巧
  • 辽阳网站推广阿里云域名注册查询
  • 泰州做网站的搜索引擎调词平台哪个好
  • 常见的微网站平台有哪些方面长沙百度推广排名
  • 多少钱算诈骗seo待遇
  • 有可以做推广的网站吗百度一下app下载安装
  • 商城网站建设网站品牌推广策略
  • 网站建设mdf无锡网络公司
  • 专注网站建设怎么样哈尔滨百度网络推广
  • 金华专业做网站优化关键词的方法正确的是
  • 福山区建设工程质量检测站网站企业宣传标语
  • 哪个网站的ps元素好抖音网络营销案例分析