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

网站建设后续需要维护优化网站排名需要多少钱

网站建设后续需要维护,优化网站排名需要多少钱,哔哩哔哩官方网站首页,赣州小程序建设包括哪些服务文章目录 1.山脉数组的峰顶索引2.寻找峰值3.寻找旋转排序数组中的最小值4.点名希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 本篇接上一篇二分查找,主要通过部分题目熟悉二分查找的进阶使用,重点强调二段性,…

文章目录

  • 1.山脉数组的峰顶索引
  • 2.寻找峰值
  • 3.寻找旋转排序数组中的最小值
  • 4.点名
  • 希望读者们多多三连支持
  • 小编会继续更新
  • 你们的鼓励就是我前进的动力!

本篇接上一篇二分查找,主要通过部分题目熟悉二分查找的进阶使用,重点强调二段性,找到两个区间不同的地方在哪,多画图划分界限

1.山脉数组的峰顶索引

✏️题目描述:

在这里插入图片描述

✏️示例:

在这里插入图片描述

传送门:山脉数组的峰顶索引

题解:
💻第一步:

首先确定二段性,把顶峰放到左区间还是右区间取决于你自己,会根据取法不同而导致代码不同,但是都能求出顶峰索引,这里我们放到左区间

在这里插入图片描述

💻第二步:

按照我们的划分方式,要确保左边区间不会越过分界,右边区间同理,就要用midmid-1这种划分方式。如果在左区间,那么mid会有等于峰顶索引,即left = mid;如果在右区间mid及其后面的值都不可能是峰顶索引,即right = mid - 1

在这里插入图片描述

💻细节问题:

对于二分查找进阶模版,如果在if语句的函数体里有减法操作时,那么计算mid的公式就要+1

💻代码实现:

#include <iostream>
#include <vector>
using namespace std;class Solution 
{
public:int peakIndexInMountainArray(vector<int>& arr) {int left = 0, right = arr.size() - 1;while (left < right){int mid = left + (right - left + 1) / 2;if (arr[mid] > arr[mid - 1]){left = mid;}else{right = mid - 1;}}return right;}
};

2.寻找峰值

✏️题目描述:

在这里插入图片描述

✏️示例:

在这里插入图片描述

传送门:寻找峰值

题解:
💻第一步:

首先确定二段性,可以分为在上坡或者下坡,其实这道题和山脉数组的峰顶索引是一样的,这里我们顶峰放在右区间里

在这里插入图片描述

💻第二步:

按照我们的划分方式,要确保右边区间不会越过分界,左边区间同理,就要用midmid+1这种划分方式。如果在右区间,那么mid会有等于峰顶索引,即right = mid;如果在左区间mid及其前面的值都不可能是峰顶索引,即left = mid + 1

在这里插入图片描述
💻代码实现:

#include <iostream>
#include <vector>
using namespace std;class Solution 
{
public:int findPeakElement(vector<int>& nums) {int left = 0, right = nums.size() - 1;while (left < right){int mid = left + (right - left) / 2;if (nums[mid] < nums[mid + 1]){left = mid + 1;}else{right = mid;}}return left;}
};

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

✏️题目描述:

在这里插入图片描述

✏️示例:

在这里插入图片描述

传送门:寻找旋转排序数组中的最小值

题解:
💻第一步:

根据画图,似乎不太好确认二段性,但我们可以发现以D点为分界点左区间的数(A到B)都大于D右区间的数(C到D)都小于D,那么由此就能确定二段性,不断向中寻找最小的数

在这里插入图片描述

💻第二步:

如果在右区间,那么mid会有等于最小值,即right = mid;如果在左区间,mid及其前面的值都不可能是最小值,即left = mid + 1

在这里插入图片描述

💻代码实现:

#include <iostream>
#include <vector>
using namespace std;class Solution 
{
public:int findMin(vector<int>& nums) {int left = 0, right = nums.size() - 1;int x = nums[right];while (left < right){int mid = left + (right - left) / 2;if (nums[mid] > x){left = mid + 1;}else{right = mid;}}return nums[right];}
};

4.点名

✏️题目描述:

在这里插入图片描述

✏️示例:

在这里插入图片描述

传送门:点名

题解:
💻第一步:

连续数组的前提下,缺失数字的位置开始下标与实际值不同,很明显二段性立马就出来了

在这里插入图片描述

💻第二步:

如果在右区间,那么mid会有等于缺失值的实际位置索引,即right = mid;如果在左区间,mid及其前面的值都不可能是缺失值的实际位置索引,即left = mid + 1

在这里插入图片描述

💻代码实现:

#include <iostream>
#include <vector>
using namespace std;class Solution 
{
public:int takeAttendance(vector<int>& records) {int left = 0, right = records.size() - 1;while (left < right){int mid = left + (right - left) / 2;if (records[mid] == mid){left = mid + 1;}else{right = mid;}}return records[left] == left ? left + 1 : left;}
};

希望读者们多多三连支持

小编会继续更新

你们的鼓励就是我前进的动力!

请添加图片描述

http://www.zhongyajixie.com/news/14228.html

相关文章:

  • 网站备案时间查询网络推广公司哪家好
  • 宝山区网站建设企业文化墙
  • 网站设计与网页制作代码大全网站快速优化排名方法
  • 用手机做网站的软件关键词在线试听免费
  • wordpress默认主题修改长春百度推广排名优化
  • 用html做网站的背景图怎么弄如何自己做一个网站
  • 网站建设 中山百度推广有效果吗
  • 论坛网站建设教程中国互联网协会官网
  • 网站建设优化需要懂那些知识如何推广网站方法
  • 斐讯n1 WordPress宁波网站推广优化
  • 江门专业网站制作费用镇江网站建设制作公司
  • 中瑞网络网站建设流程seo优化
  • 给别人做网站要问什么问题泰安百度公司代理商
  • cms支持是什么优化设计六年级下册数学答案
  • 刘强东自己做网站手机百度下载免费
  • 外贸网站建设哪家合适北京网讯百度科技有限公司
  • 北京网站建设企业百度人工客服在哪里找
  • 获取网站漏洞后下一步怎么做个人如何加入百度推广
  • 二手车网站制作申请一个网站需要多少钱
  • 兰州网站建设100网络营销好找工作吗
  • 网站开发所需要的技术公司以优化为理由裁员合法吗
  • magento 网站链接友情外链代发免费
  • 做公司网站页面哪家公司做推广优化好
  • 网站开发和网页上传的说法西安网红
  • 日本做头像的网站有哪些百度明星人气榜入口
  • 防止服务器上的网站被进攻家庭优化大师
  • 用php做的企业网站作业最新国内新闻事件今天
  • 工邦邦官网东莞seo管理
  • 平乡企业做网站长沙网站优化体验
  • 佛山网站建设专家百度营销平台