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

网站次年续费开发一个游戏需要多少钱

网站次年续费,开发一个游戏需要多少钱,wordpress多媒体mp4,net淘宝网站开发的例子前言 上篇介绍了二分法的相关原理并结合具体题目进行讲解运用#xff0c;本篇将加大难度#xff0c;进一步强化对二分法的掌握。 一. 寻找峰值 1.1 题目链接#xff1a;https://leetcode.cn/problems/find-peak-element/description/ 1.2 题目分析: 题目要求返回数组内… 前言 上篇介绍了二分法的相关原理并结合具体题目进行讲解运用本篇将加大难度进一步强化对二分法的掌握。 一. 寻找峰值 1.1 题目链接https://leetcode.cn/problems/find-peak-element/description/ 1.2 题目分析: 题目要求返回数组内任一峰值元素的下标时间复杂度要求为log n排除暴力解法直接遍历的可能. 峰值元素大于其左右相邻元素的元素。 1.3 思路讲解 题目给出提示可以假设nums[-1]nums[n]负无穷且要求时间复杂度为log n因此可考虑寻找二段性利用二分法求解。 寻找⼆段性 任取⼀个点 i 与下⼀个点 i 1 会有如下两种情况 • arr[i] arr[i 1] 此时「左侧区域」⼀定会存在⼭峰因为最左侧是负⽆ 穷那么我们可以去左侧去寻找结果 • arr[i] arr[i 1] 此时「右侧区域」⼀定会存在⼭峰因为最右侧是负⽆ 穷那么我们可以去右侧去寻找结果。 当我们找到「⼆段性」的时候就可以尝试⽤「⼆分查找」算法来解决问题。 1.4 代码实现 class Solution { public:int findPeakElement(vectorint nums) {int left0,rightnums.size()-1;while(leftright){int midleft(right-left1)/2;if(nums[mid]nums[mid-1]){leftmid;}else{rightmid-1;}}return left;} };二. 寻找旋转排序数组中的最小值 2.1 题目链接https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/ 2.2 题目分析 现有一个按照升序排列且元素值各不相同的数组每旋转一次即为把数组原先末尾的值调向第一个将该数组旋转数次后要求返回此时数组内的最小元素时间复杂度为log n 2.3 思路讲解 旋转后的数组满足下图情形其中ABCD均为数组按下标顺序所对应的值且C即为所求。 以D为界限A-B内全都大于DC-D内全都小于D满足二段性因此可考虑使用二分法求解具体步骤如下 令left0rightnums.size()-1,targetnums[right]其中target即为上图中的D求取中点midleft(right-left)/2如果nums[mid]target说明mid此时位于AB区间内需要更新leftmid1如果nums[mid]target说明mid此时位于CD区间内需要更新rightmidwhile循环二分最终nums[left]即为所求。 2.4 代码实现 class Solution { public:int findMin(vectorint nums) {int left0,rightnums.size()-1;int targetnums[right];//靶区间while(leftright){int midleft(right-left)/2;if(nums[mid]target){leftmid1;}//更新leftelse{rightmid;}//更新right}return nums[left];} };三. 搜索插入位置 3.1 题目链接https://leetcode.cn/problems/search-insert-position/description/ 3.2 题目分析 题中给出一个升序数组和target要求查找target在数组内的位置如果target不存在则返回其应该插入的位置时间复杂度为logn 3.3 思路讲解 时间复杂度为logn且满足二段性因此可考虑使用二分法解决具体步骤如下 令left0rightnums.size()-1,分别作为左右区间求取中点midleft(right-left)/2如果nums[mid]target说明[left,mid]内的所有元素均小于target将left更新为mid1如果nums[mid]target,说明[mid,right]内所有元素均大于等于target将right更新为mid.while循环二分最终leftright此时如果nums[left]target说明数组内所有元素均小于target需要在末尾插入返回left1反之则正常返回left即可 3.4 代码实现 class Solution { public:int searchInsert(vectorint nums, int target) {int left0,rightnums.size()-1;while(leftright){int midleft(right-left)/2;if(nums[mid]target){leftmid1;}//更新leftelse{rightmid;}//更新right}if(nums[left]target){return left1;}return left;} };四. 点名 4.1 题目链接https://leetcode.cn/problems/que-shi-de-shu-zi-lcof/description/ 4.2 题目分析 数组内有n个元素代表0-n但其中缺少了0-n中的一个元素返回该值 4.3 思路讲解 该题方法多样可以采取异或法总和累减法等方法解答。由于本篇主题为二分法因此只讲解二分法如何解答该题。 二分法的重点为二段性 观察可知假设缺失元素为target在target左侧[left,target]内每一个元素的值对应其下标在target右侧[target,right]内每一个元素的值都比其下标大1 因此该题二分法具体步骤如下 令left0,rightnums.size()-1作为左右边界 求取中点,midleft(right-left)/2如果nums[mid]mid,则更新leftmid1 如果nums[mid]mid,更新rightmid while循环二分后right即为所求 需注意一种特殊情况当rightnums[right]时说明缺失的数字为n[left,right]内所有元素均有下标一一对应此时需要返回right1 4.4 代码实现 class Solution { public:int takeAttendance(vectorint records) {int left0,rightrecords.size()-1;while(leftright){int midleft(right-left)/2;if(records[mid]mid){leftmid1;}//更新为leftelse{rightmid;}//更新right}if(records[right]right){return right1;}//缺少的元素为nelse{return right;}} };小结 关于二分法的介绍就暂告段落啦希望能对大家的学习产生帮助欢迎各位佬前来支持斧正
http://www.hyszgw.com/news/88145/

相关文章:

  • 网站建设怎么找客户台州网红打卡地
  • 织梦怎么在本地编辑多个网站张家港早晨网站制作
  • 廊坊建站软件百度手机提高关键词排名
  • 海珠网站建设方案云服务器最便宜
  • 优秀网站设计作品wordpress 织梦 米拓
  • 嘉祥网站建设哪家好精通网站建设工资多少钱
  • 快速开发手机网站做网站的叫什么思耐
  • 黄冈网站建设 网络推广福州网站关键排名
  • 工信部网站备案怎么查询门户网站优化怎么做
  • 网站开发规模和工作量的计算免费注册个人网站不花钱
  • 牡丹江住房和城乡建设厅网站阿里云网站建设的步骤过程
  • 广东建设中标网站网站建设理论基础
  • 做服装团购有哪些网站有哪些企业 北京 响应式网站
  • 无极网站招聘信息电子商务平台建设内容
  • 院系网站建设具体要求网站内容建设机制
  • 如何对网站进行爬虫黄骅市职教中心
  • 大良营销网站建设公司网站开发 项目计划
  • 网站建设方案实验报告2021手机能看的网站
  • 中山做营销型网站公司哪种编程语言可以做网站
  • 北京海淀网站制作房地产网站策划书
  • 有什么做公众号封面图的网站网站漏洞怎么修复
  • 中国的网站建设数据分析龙游网站建设
  • 建设厅网站174号文开店做网站有什么好处
  • 吉林市建设工程档案馆网站无锡招标网官方网站
  • 中铁四局建筑公司网站政务服务平台
  • 网站开发类兰州网站建设流程
  • 布吉网站建设价格怎么开发网站
  • 做网站的去哪找客户外贸出口网
  • 新能源东莞网站建设技术支持app推广拉新渠道
  • 广州建设网站是什么样的wordpress响应+延时