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

c2c的电子商务网站有哪些樱花bt引擎

c2c的电子商务网站有哪些,樱花bt引擎,门户网站建设存在的问题和差距,手表网购最好的网站欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 山脉数组的顶峰索引 题目链接 解法 小细节:根据题目特性,山脉数组的第一个数和最后一个数一定不是峰值 暴力枚举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/192141.html

相关文章:

  • 有哪些网站做外贸的怎么把自己的网站发布到网上
  • 学生网站开发大赛2022国内外重大新闻事件10条
  • 深圳一元网站建设公司外贸建站与推广
  • 东阳网站建设yw126太原seo计费管理
  • 政府类网站设计有什么要点免费个人网页制作
  • 制作一般网站今日国内新闻最新消息10条新闻
  • 无限流量网站建设企业seo推广
  • 如何制作网站页面seo的优点
  • 闲鱼网站是哪家公司做的搜索引擎优化方案
  • 宁波网站推广外包服务福州网络营销推广公司
  • 网站 手机版 电脑版 怎么做seo指的是
  • 保定商城网站建设深圳网站搜索优化
  • 网站建设网络公附近有学电脑培训班吗
  • 做淘宝店铺有哪些好的网站网站优化推广教程
  • 网站建设的工作描述中央新闻今日要闻
  • 武汉营销网站设计淮北网络推广
  • 数据库网站开发免费个人博客网站
  • 做网站的公司名字站长域名查询
  • hao123主页网址之家益阳网站seo
  • php 网站发布社交网络推广方法有哪些
  • 新疆档案馆建设网站win7优化配置的方法
  • 团中央建设的网站网络营销软件网站
  • 益阳做网站百度指数人群画像怎么看
  • 上传网站空间的建站程序怎么删除好口碑的关键词优化
  • 2022年编程语言官方排行榜重庆seo排名方法
  • 如何制作手机免费网站模板下载微信管理软件
  • 有哪些可以在线做app的网站企业营销网站
  • 重庆点优建设网站公司吗seo流量是什么
  • 深圳专业网站制作公司排名用广州seo推广获精准访问量
  • 网站从建设到赚钱的流程怎样联系百度客服