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

广州越秀建网站网站备案与服务器

广州越秀建网站,网站备案与服务器,装修案例图片,绍兴优秀做网站的目录 1、二叉树使用前提2、算法题【1】搜索插入位置【2】在排序数组中查找元素的第一个和最后一个位置【3】x 的平方根【4】有效的完全平方数 1、二叉树使用前提 使用二叉树要满足以下两个条件: 1、有序数组 2、无重复值 2、算法题 【1】搜索插入位置 LeetCode第…

目录

  • 1、二叉树使用前提
  • 2、算法题
    • 【1】搜索插入位置
    • 【2】在排序数组中查找元素的第一个和最后一个位置
    • 【3】x 的平方根
    • 【4】有效的完全平方数

1、二叉树使用前提

使用二叉树要满足以下两个条件:

1、有序数组
2、无重复值

2、算法题

【1】搜索插入位置

LeetCode第35题,题目如下:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被顺序插入的位置。
请必须使用时间复杂度为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

代码示例:

func searchInsert(nums []int, target int) int {left, right := 0, len(nums)-1var index intfor left <= right {mid := left + (right-left)/2if target == nums[mid] {return mid} else if target < nums[mid] { //目标值在左区间right = mid - 1index = mid} else { //目标值在右区间left = mid + 1index = mid + 1}}return index
}

【2】在排序数组中查找元素的第一个和最后一个位置

LeetCode第34题,题目如下:

给一个按照非递减顺序排列的整数数组nums,和一个目标值target。请找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值target,返回[-1, -1]。
设计并实现时间复杂度为O(log n)的算法来解决问题。

示例1:

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3, 4]

示例2:

输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1, -1]

示例3:

输入: nums = [], target = 0
输出: [-1, -1]

代码示例:

func searchRange(nums []int, target int) []int {leftBorder, rightBorder := -2, -2 //左边界和右边界, 不能使用-1, 因为当目标值等于数组最左边值时,此时leftBorder=-1left, right := 0, len(nums)-1     //二分法查找的左右索引//先找右边界for left <= right {mid := left + (right-left)/2if target < nums[mid] { //目标值在左区间right = mid - 1} else {left = mid + 1rightBorder = left}}//再找左边界left, right = 0, len(nums)-1for left <= right {mid := left + (right-left)/2if target > nums[mid] { //目标值在右区间left = mid + 1} else {right = mid - 1leftBorder = right}}//判断三种情况if leftBorder == -2 || rightBorder == -2 { //目标值在最左边之外rightBorder=-2或者目标值在最右边之外leftBorder=-2return []int{-1, -1}} else if (rightBorder - leftBorder) > 1 { //目标值至少存在一个return []int{leftBorder + 1, rightBorder - 1}} else { //目标值的大小在数组范围内,但是没有相等的return []int{-1, -1}}
}

【3】x 的平方根

LeetCode第69题,题目如下:

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2

示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

提示:

0 <= x <= 231 - 1

代码示例:

func mySqrt(x int) int {left, right := 0, xvar index intfor left <= right {mid := left + (right-left)/2if mid*mid == x {return mid} else if mid*mid < x { //平方根在右区间left = mid + 1index = mid} else { //平方根在左区间right = mid - 1index = right}}return index
}

【4】有效的完全平方数

LeetCode第367题,题目如下:

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。
不能使用任何内置的库函数,如 sqrt 。

示例 1:

输入:num = 16
输出:true
解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。

示例 2:

输入:num = 14
输出:false
解释:返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。

提示:

1 <= num <= 231 - 1

代码示例如下:

func isPerfectSquare(num int) bool {left, right := 1, numfor left <= right {mid := left + (right-left)/2if mid*mid == num {return true} else if mid*mid > num { //目标值在左区间right = mid - 1} else { //目标值在右区间left = mid + 1}}return false
}
http://www.dtcms.com/wzjs/828412.html

相关文章:

  • 集团高端网站建设公司做网站时字幕怎么做
  • 做外贸推广的网站前端网站开发
  • 做谷歌网站使用什么统计代码东莞seo网站排名优化公司
  • 做网站用的动漫资料html5网站建站书
  • 我做的网站搜不到中小型网站建设流程
  • 双拥网站建设申请公司建站系统
  • 网站app生成器贵州网站设计
  • 一个电信ip做网站卡不卡专门做家具的网站
  • 方案设计基本步骤抚顺网站seo
  • 刚备案的域名如何做网站营销软文是什么意思
  • 郑州做网站最好的公司九寨沟网站建设规划书
  • 金山集团网站建设龙华营销型网站制作
  • 设计数码产品宣传网站线报网站如何做
  • 濮阳公司网站建设企业最近营销热点
  • wordpress网站更改不见什么是seo和sem
  • 嘉兴做网站优化网站备案流程多少钱
  • 舜元建设 集团 有限公司网站电子商务网站有哪些类型
  • 制作外贸网站模板什么平台可以推广
  • 企业网站标题优化网站建设的培训心得
  • 工业电商做网站怎么样重庆公司章程怎么下载
  • 南宁企业网站设计公成都网络营销公司排名收费标准
  • 网站meta优化如何做好网站优化
  • 设计网站官网国外一键优化清理手机
  • 图片网站建站系统网页版qq登录入口电脑版
  • 设计什么网站简单海口建设
  • 中国没公司怎么做网站html网站更新
  • 瑞丽企业网站建设wordpress制作数据排行榜
  • 安徽网站建设整体策划方案可以做动画的网站有哪些
  • 公司网络推广网站成都教育行业网站建设
  • 最便宜做网站的方法邯郸网站建设开发公司