有专业做网站的吗gre考,中关村做网站设计的,wordpress 云笔记,盐城网站建设制作工作室提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、搜索插入位置二、在排序数组中查找元素的第一个和最后一个位置 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a;
今天是跟着代码随想… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、搜索插入位置二、在排序数组中查找元素的第一个和最后一个位置 前言
提示这里可以添加本文要记录的大概内容
今天是跟着代码随想录刷题的第56天主要是复习了数组的内容复习了数组的定义和二分法做了一些二分法的扩展题目 提示以下是本篇文章正文内容下面案例可供参考
一、搜索插入位置
思路这道题就是用二分法具体应该返回哪个值可以举个例子查看在代码里面用的左开右闭还是左闭右开这个主要看后面rightmiddle还是middle-1,如果是左开右闭就只能middle-1因为最右边那个是闭的所以不可能包括这个值就要变成middle-1 代码
class Solution {
public:int searchInsert(vectorint nums, int target) {int left0;int rightnums.size()-1;while(leftright){int middle(leftright)/2;if(nums[middle]target){rightmiddle-1;}else if(nums[middle]target){return middle;}else if(nums[middle]target){leftmiddle1;}}return left;}
};
代码如下示例
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(ignore)
import ssl
ssl._create_default_https_context ssl._create_unverified_context二、在排序数组中查找元素的第一个和最后一个位置
思路就是分查找元素位置的左边界和有边界写两个函数一个求左边界一个求有边界 代码
class Solution {int getRightBorder(vectorint nums, int target) {int left0;int rightnums.size()-1;int result;while(leftright){int middle(leftright)/2;if(nums[middle]target){rightmiddle-1;}else if(nums[middle]target){while(middlenums.size()-1nums[middle]target){resultmiddle;middle;}return result;}else{leftmiddle1;}}return -1;}int getleftBorder(vectorint nums, int target) {int left0;int rightnums.size()-1;int result;while(leftright){int middle(leftright)/2;if(nums[middle]target){rightmiddle-1;}else if(nums[middle]target){while(middle0nums[middle]target){resultmiddle;middle--;}return result;}else{leftmiddle1;}}return -1;}
public:vectorint searchRange(vectorint nums, int target) {vectorint result1;int agetleftBorder(nums,target);int bgetRightBorder(nums,target);result1.push_back(a);result1.push_back(b);return result1;}
};