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

建网站怎么挣钱深圳产品设计师

建网站怎么挣钱,深圳产品设计师,九八智能建站,如何推动一个教学网站的建设每日一题之二分查找(一) 1.题目(搜索插入位置) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间…

每日一题之二分查找(一)

1.题目(搜索插入位置)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums无重复元素升序 排列数组
  • -104 <= target <= 104

2.解题思路

因为数组是有序的排列数组,且无重复元素,所以可以使用二分来找下标

这里一共有四种情况

(1)数组中找到了目标元素,返回当前目标元素的下标结束

(2)目标元素不存在,应在数组的所有元素之前

(3)目标元素不存在,应在所有的元素之后

(4)目标元素不存在,应在数组中的某个位置

具体实现步骤

1.先找到这个数组的左边界,再找到这个数组的右边界,此时的范围就是整个数组

2.然后进行二分查找

(1)先找到中间位置的那个数,然后与目标值进行比较,

1> 如果当前的数比目标值小的话那么左边界变为中间位置向右一个的位置,继续进行查找

2> 如果当前的数比目标值小的话那么右边界变为中间位置向左一个的位置,继续进行查找

3> 如果当前的数和目标值相等的话,那么找到了

(2)当左边界比右边界大的时候,结束查找

3.那要添加元素的位置就是右边界+1的位置

3.代码

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)>>1;这里通过学习发现可以进行优化//优化如下int mid=left+(right-left)/2;//优化后的代码if(nums[mid]==target){return mid;}if(nums[mid]>target){right=mid-1;}if(nums[mid]<target){left=mid+1;}}return right+1;}
};
http://www.yayakq.cn/news/429092/

相关文章:

  • 做网站给女朋友wordpress修改404页面
  • phpcms v9网站性能优化企业门户网站的建设与实现论文
  • 找私人做网站程序费用wordpress注册修改密码
  • 电影网站开发背景重庆seo结算
  • 游戏网站织梦模板深圳搜索排名优化
  • 网站规划的公司无锡集团网站建设
  • 网站服务器物理地址怎么查腾讯企业邮箱入口网址
  • 天津行业网站建设电子商务网站建设实训心得
  • 杭州集团网站建设做奖状的网站
  • 巧克力网站建设需求分析wordpress主题 d8 4.1
  • 太原网站建设加王道下拉刷网站关
  • 长春制作门户网站的公司最新国内新闻10条
  • 巫山网站开发游戏网页设计教程
  • 万户做网站怎么样所有免费的网站有哪些
  • 网站的引导页怎么做的开发定制app
  • 松江 企业网站建设wordpress站点标题
  • 全国各地网站开发外包河北建设工程交易信息网
  • 金华做网站外贸网站设计注意事项
  • 精品网站做爆款怎样打开网站
  • 大渡口区网站建设最近的新闻事件
  • 案例建网站手机网站改版
  • 中国建设银行青海省分行网站0基础网站开发
  • 做汽车团购网站郑州轻工业大学教务网络管理系统
  • 微信招聘网站建设网站小图标怎么做的
  • 大沥网站设计建设外贸商城网站制作
  • 东莞seo网站建设公司网站分站代理
  • 做物流行业网站的开发公司卡片风格网站
  • 宁夏 网站开发westte做网站的必要条件
  • dell网站设计特色wordpress手机发表文章
  • 提供温州手机网站制作多少钱淘宝客推广