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

蛙蛙写作网站最新商城系统

蛙蛙写作网站,最新商城系统,在线代理入口,手机app免费制作平台欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 山脉数组的顶峰索引 题目链接 解法 小细节:根据题目特性,山脉数组的第一个数和最后一个数一定不是峰值 暴力枚举O(n):按顺序遍历,当遇到一个数x比后面的数大时,返回x的索…

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~



山脉数组的顶峰索引

题目链接

解法

小细节:根据题目特性,山脉数组的第一个数和最后一个数一定不是峰值

暴力枚举O(n):按顺序遍历,当遇到一个数x比后面的数大时,返回x的索引

解法二: 二分查找算法 ,利用山脉数组的二段性,将数组分为arr[i] > arr[i - 1]和arr[i] < arr[i - 1]两部分

画图举例

代码

class Solution {public int peakIndexInMountainArray(int[] arr) {int left = 1, right = arr.length - 2;while(left < right){int mid = left + (right - left + 1) / 2;if(arr[mid] > arr[mid - 1]) left = mid;else right = mid - 1;}return left;}
}

寻找峰值

题目链接

解法

根据题目得出可能有多个,得出一个就行,所以我们可以选择求数组 出现的第一个峰值

暴力解法O(n): 从第一个位置开始遍历,一直走,分情况讨论,分三种

  1. 第一个数最大,往后走 数逐渐减小
  2. 数先上升再下降,下降的前一个数为峰值
  3. 数一直上升,最后一个数为峰值

解法二: 二分查找算法, 利用二段性,分两种情况

数组开始呈下降趋势,即arr[mid] > arr[mid + 1], 得出峰值在左边区间,right = mid

 数组开始呈上升趋势,即arr[mid] < arr[mid + 1], 峰值在右边区间,left = mid + 1

画图举例

代码

class Solution {public int findPeakElement(int[] nums) {int left = 0, right = nums.length - 1;while(left < right){int mid = left + (right - left) / 2;if(nums[mid] > nums[mid + 1]) right = mid;else left = mid + 1;}return left;}
}

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

题目链接

解法

理解题目: 旋转(一次)的意思就是把数组中最后一个数 放到第一个位置

暴力解法O(n): 从前往后遍历数组找到最小值

解法二: 利用二段性将数组分为两段,AB段和CD段,都是呈上升趋势,且CD段最后一个值(标记为 x )小于AB段的值,所以找最小值 要到CD段里找.

当arr[mid] > x,说明此时mid在AB段,更新left= mid+ 1;

当arr[mid] < x,说明此时mid在CD段,更新right= mid;

画图举例

代码

class Solution {public int findMin(int[] nums) {int left = 0, right = nums.length - 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[left];}
}

点名

题目链接

解法

解法有很多种:1.利用哈希表 , 2.直接遍历找结果 3.位运算,异或,将题给数组与完整数组异或

4.等差求和,求出完整数组的和,再减去题给的数组的和,得出的就是缺失的数 . 上面的这4种解法时间复杂度都是O(n)

二分查找算法:找出数组的二段性,左边区间数组的值等于下标,右边区间不等于,找出第一个不等于数组值的下标即可

  • 左区间: nums[mid] == mid 更新left = mid + 1;
  • 右区间: nums[mid] != mid 更新 right = mid;

细节处理:当题给的数组是一个 完全递增的数组,缺的数是left+1

画图举例

代码

class Solution {public int takeAttendance(int[] records) {int left = 0, right = records.length - 1;while(left < right){int mid = left + (right - left) / 2;if(records[mid] == mid) left = mid + 1;else right = mid;}if(left == records[left]) return left + 1;return left;}
}


文章转载自:

http://ccYXF0Hb.tsycr.cn
http://nBpgDF9f.tsycr.cn
http://zNcuNGsj.tsycr.cn
http://e4Je4t7X.tsycr.cn
http://mka2tbrh.tsycr.cn
http://yDprGatG.tsycr.cn
http://9CbXe3sD.tsycr.cn
http://VrqRRHXL.tsycr.cn
http://1WPhdK25.tsycr.cn
http://Rt9Tg6T1.tsycr.cn
http://GF6ZdPEK.tsycr.cn
http://9FXZXMj4.tsycr.cn
http://rnXJ85DB.tsycr.cn
http://TkKKqec4.tsycr.cn
http://Go8Afw7E.tsycr.cn
http://JG3DhdlM.tsycr.cn
http://SWoWpNQh.tsycr.cn
http://I75Q7dkm.tsycr.cn
http://q8RWIgt6.tsycr.cn
http://Q4wlDYzy.tsycr.cn
http://kFpvmzkl.tsycr.cn
http://ThwOP3AR.tsycr.cn
http://800Pjrpa.tsycr.cn
http://ufj0aKUr.tsycr.cn
http://aynMTBNm.tsycr.cn
http://p8VrRrLx.tsycr.cn
http://wCnIkkTs.tsycr.cn
http://DreQIqEt.tsycr.cn
http://KCSdSLVF.tsycr.cn
http://6BJXA5sF.tsycr.cn
http://www.dtcms.com/wzjs/735317.html

相关文章:

  • 大连零基础网站建设教学公司wordpress404页面更爱
  • 河南新蔡有做网站建设的吗如何做电商直播
  • 河南网站建设优化推广网页毕业设计论文
  • 1网站建设公司做图标去什么网站找
  • 新站整站快速排名河南郑州网站制作公司
  • 开发网站的硬件成本如何做亚马逊跨境电商
  • 网站建设与管理课程心得体会越秀五屏网站建设
  • 工业设备网站源码域名备案后网站打不开
  • 广西工程建设质量管理协会网站丹阳建站推广管理
  • 静态网站如何建设wordpress pinterest
  • 网站建设经典范例wordpress怎么设置水印
  • 上海php网站开发公司国产安卓开发工具
  • 做网站被网警找做3D打印样品用什么外贸网站好
  • 网站外包公司有哪些青岛做网站公司排名
  • 网站建设怎么购买空间成都微信小程序分类信息开发
  • 科技网站设计欣赏装饰工程投标书
  • 镇江网站建设联系思创设计公司企业定位
  • 阿里 网站建设河北沧州市网络公司
  • 嘉兴网站推广公司个人建站赚钱
  • python做网站有什么弊端在网上做广告怎么做
  • 个人免费开店的网站免费咨询律师的电话
  • 自己做网站需要固定ip吗如何选择网站开发语言
  • 云网站建设017年青大学网站建设招标
  • 广东网站se0优化公司深圳餐饮公司网站制作
  • perl 网站开发网站开发需求报告
  • 想做个ktv的网站怎么做洛江区建设局网站
  • 济宁 网站建设wordpress云视链
  • icp备案网站信息企业营销策划书模板
  • 弄个盈利网站做什么wordpress 医疗主题
  • 天津市精神文明建设网站wordpress 做 cms