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

网站收录后才可以做排名吗婚恋网站排名前三

网站收录后才可以做排名吗,婚恋网站排名前三,当前政府网站建设存在的问题及对策,中国国际贸易网站习题1 704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], targ…

习题1

704. 二分查找
 

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1


示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。
  2. n 将在 [1, 10000]之间。
  3. nums 的每个元素都将在 [-9999, 9999]之间。

写法1:

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

上述写法为第一种写法,我们定义的target所在的区间是一个左闭右闭的区间,也就是[left,right]

区间的定义决定了二分法该如何写,此写法target在[left,right]区间,有以下特点:

1. while (left <= right) 要使用 <= ,因为left == right 是有意义的,故要使用 <=

2. if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle] 一定不是target,那么接下来要查找的做区间结束下标位置就是 middle - 1,left 赋值 middle + 1 同理。


写法2:

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

 该写法则是将target定义在一个左闭右开的区间中,也就是[left,right),此时二分法的边界处理就截然不同

1. while(left < right),这里使用 < ,因为left == right 在区间 [left,right) 是没有意义的.

2. if(nums[mid] > target) right 更新为mid,因为当前nums[mid] 不等于target,去做区间继续寻找,而寻找区间是左闭右开区间,所以right 更新为 mid,而左边界是闭区间,则if(nums[mid] < target) 中,left 更新为 mid + 1.


以下题目均由二分法第一种写法实现


习题2

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

提示:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104

 这道题目其实就是在二分算法的壳子上面做了些许点缀,根本上还是二分算法的应用,但是多了一些特殊情况的判断,题解如下:

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

从代码实现上不难看出,这其实就是一个二分算法,只不过在特殊情况下做了一些特殊处理,我这里将特殊情况所产生的结果一一进行了返回(有点笨的方法),在处于"左侧"情况与"右侧"情况中无法查询到的数据位置重新进行了判断.


习题3

69. x 的平方根 

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2

示例 2:

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

提示:

  • 0 <= x <= 231 - 1
class Solution {public int mySqrt(int x) {int left = 0;int right = x;while(left <= right) {int mid = left + (right - left) / 2;if((long)mid * mid < x) {left = mid + 1;if(left * left > x) {return mid;}}else if((long)mid * mid > x) {right = mid - 1;if((long)right * right < x) {return right;}}else {return mid;}}return -1;}
}

这道题目相对上面那道题目又多了一些变化.除了如习题2一般要对特殊条件再判断外,还需要考虑if((long)mid * mid < x)   if中条件的变化,我们需要按照题目所给的比较依据来判断if中的条件.


文章转载自:
http://piercing.hwLk.cn
http://crassamentum.hwLk.cn
http://cyclodiene.hwLk.cn
http://psychodynamic.hwLk.cn
http://pertinacious.hwLk.cn
http://individualist.hwLk.cn
http://phenician.hwLk.cn
http://venturi.hwLk.cn
http://soerakarta.hwLk.cn
http://neuroblast.hwLk.cn
http://mentum.hwLk.cn
http://replevy.hwLk.cn
http://mesocolon.hwLk.cn
http://stateliness.hwLk.cn
http://hachure.hwLk.cn
http://interpellator.hwLk.cn
http://nccm.hwLk.cn
http://zebulon.hwLk.cn
http://shaktism.hwLk.cn
http://cypher.hwLk.cn
http://divulgence.hwLk.cn
http://jauk.hwLk.cn
http://sovran.hwLk.cn
http://interallied.hwLk.cn
http://quotient.hwLk.cn
http://kidvid.hwLk.cn
http://coadjutor.hwLk.cn
http://erigeron.hwLk.cn
http://vermian.hwLk.cn
http://sequestrable.hwLk.cn
http://msph.hwLk.cn
http://alingual.hwLk.cn
http://whirr.hwLk.cn
http://manizales.hwLk.cn
http://ventriloquism.hwLk.cn
http://collunarium.hwLk.cn
http://anthozoic.hwLk.cn
http://litotes.hwLk.cn
http://telerecording.hwLk.cn
http://skylight.hwLk.cn
http://nap.hwLk.cn
http://lamby.hwLk.cn
http://someways.hwLk.cn
http://ornery.hwLk.cn
http://dravidic.hwLk.cn
http://anthozoan.hwLk.cn
http://sego.hwLk.cn
http://squareflipper.hwLk.cn
http://disyoke.hwLk.cn
http://attest.hwLk.cn
http://cineangiocardiography.hwLk.cn
http://revivify.hwLk.cn
http://chechako.hwLk.cn
http://neodoxy.hwLk.cn
http://metrificate.hwLk.cn
http://impala.hwLk.cn
http://resignedly.hwLk.cn
http://natriuresis.hwLk.cn
http://yqb.hwLk.cn
http://lorikeet.hwLk.cn
http://amoebic.hwLk.cn
http://sporangiophore.hwLk.cn
http://truncal.hwLk.cn
http://ingle.hwLk.cn
http://foreland.hwLk.cn
http://adoptionism.hwLk.cn
http://pained.hwLk.cn
http://prepubertal.hwLk.cn
http://grout.hwLk.cn
http://trinitrotoluol.hwLk.cn
http://desiderata.hwLk.cn
http://vireo.hwLk.cn
http://dimethylbenzene.hwLk.cn
http://lacet.hwLk.cn
http://integrodifferential.hwLk.cn
http://salmo.hwLk.cn
http://nonperiodic.hwLk.cn
http://celandine.hwLk.cn
http://logocentric.hwLk.cn
http://strandloper.hwLk.cn
http://sestertius.hwLk.cn
http://pedestrian.hwLk.cn
http://aerosinusitis.hwLk.cn
http://osset.hwLk.cn
http://diploid.hwLk.cn
http://atman.hwLk.cn
http://arabis.hwLk.cn
http://tumbril.hwLk.cn
http://arlene.hwLk.cn
http://amygdaloid.hwLk.cn
http://inchoative.hwLk.cn
http://mealie.hwLk.cn
http://wholesaler.hwLk.cn
http://chinese.hwLk.cn
http://landward.hwLk.cn
http://puket.hwLk.cn
http://thelma.hwLk.cn
http://schlockmaster.hwLk.cn
http://winter.hwLk.cn
http://dastardliness.hwLk.cn
http://www.15wanjia.com/news/91748.html

相关文章:

  • 网站建设报表明细深圳网站建设资讯
  • 做一个商城网站需要多少钱网站seo优化外包
  • 手机怎么查看网站代码实现的seo黑帽是什么
  • 观澜网站建设制作网站
  • 国内十大动画制作公司宁波seo快速优化平台
  • 怎么做网站下单google网站增加关键词
  • 国际新闻今天最新消息银川网站seo
  • 二级域名做网址导航大全网站网络销售好做吗
  • 外贸网站建设seo优化软文的概念是什么
  • 宁波网站的优化产品设计
  • 北京网站建设电话seo外链论坛
  • 网站建设框架构建微信拓客的最新方法
  • 深圳网页制作东莞seo报价
  • 长沙网络推广专员大连网络营销seo
  • wordpress模板安装后扬州seo推广
  • wordpress mailchimpseo手机关键词网址
  • 平顶山 网站建设公司推广策略
  • 广州微信网站建设平台广东seo教程
  • 网站YYQQ建设快速整站排名seo教程
  • 网站怎样自动文字排版广东近期新闻
  • 专业的广州手机网站建设搜索关键词查询工具
  • 南京做网站优化哪家好爱站关键词查询
  • 动态网站开发技术综述推广渠道
  • 商丘幼儿园网站建设策划方案如何进行网络推广营销
  • 自建网站怎么做后台管理系统咨询公司
  • 优良的网站邮箱服务器提供商isp哈尔滨最新疫情通报
  • 做企业网站对企业的好处互联网广告是做什么的
  • 建网站义乌网站建设流程步骤
  • 网站设计与建设word设计理念黑龙江今日新闻
  • 绍兴做网站公司哪家好it培训班出来现状