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

c2c的电子商务网站有哪些南平seo

c2c的电子商务网站有哪些,南平seo,找网站公司做网站,中山网站排名欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 山脉数组的顶峰索引 题目链接 解法 小细节:根据题目特性,山脉数组的第一个数和最后一个数一定不是峰值 暴力枚举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://www.dtcms.com/wzjs/1416.html

相关文章:

  • 网站建设的cms系统搜索引擎优化岗位
  • 保定seo管理武汉网站设计十年乐云seo
  • 装饰网站建设策划书河北百度seo
  • 手机做任务网站有哪些广告推广赚钱在哪接
  • 毕设做网站可能遇到的问题无锡网站推广公司
  • python 做网站优势最新热搜榜
  • 网站评论区怎么做爱营销电信版下载app最新版
  • 怎么做论坛的网站吗优秀软文范例800字
  • o2o网站平台怎么做百度登录注册
  • wordpress搜索产品伪静态seo长沙
  • 四川泸州做网站的公司有哪些站长百度
  • 国外那些视频网站做的不错官网排名优化
  • 做网站代理拉不到人网络推广员具体做什么的
  • 公司网站免费网站免费重庆网站制作公司哪家好
  • 外贸网站faq建站企业网站
  • 综合门户网站开发关键词权重
  • 网站建设新闻 常识百度推广代理
  • 武陟县住房和城乡建设局网站建立网站的基本步骤
  • 企业解决方案中的关键点seo数据是什么
  • 邵阳邵东网站建设什么软件可以发布广告信息
  • 网站怎么可以做视频播放淮安网站seo
  • 哪个网站可以免费下载电视剧看网页设计制作网站教程
  • 深圳市建设工程交易服务中心网站销售的技巧与口才
  • 济南公司建设网站自媒体视频剪辑培训班
  • 网站设计素材网站推荐泰安优化关键词排名哪家合适
  • c 网站开发如何每天10点执行任务seo公司官网
  • 做户外旅游网站推广网站制作
  • 常州微信网站建设咨询重庆网站制作
  • 做网站公司怎么开拓更多业务百度河南代理商
  • 军事的网站应如何建设曼联对利物浦新闻