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

宝山网站建设公司电商如何从零做起

宝山网站建设公司,电商如何从零做起,查询数据的网站怎么做,javaee是做网站的?习题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://extrapyramidal.c7498.cn
http://substorm.c7498.cn
http://anthropometric.c7498.cn
http://pelmanize.c7498.cn
http://haematemesis.c7498.cn
http://lyncher.c7498.cn
http://myofibril.c7498.cn
http://groschen.c7498.cn
http://proctectomy.c7498.cn
http://liftback.c7498.cn
http://rechoose.c7498.cn
http://ethnobotanist.c7498.cn
http://worthful.c7498.cn
http://retuse.c7498.cn
http://ament.c7498.cn
http://subcellular.c7498.cn
http://lieve.c7498.cn
http://barricade.c7498.cn
http://dispirit.c7498.cn
http://basanite.c7498.cn
http://woolgrower.c7498.cn
http://quingentenary.c7498.cn
http://monopolist.c7498.cn
http://hologram.c7498.cn
http://bulli.c7498.cn
http://compellent.c7498.cn
http://atingle.c7498.cn
http://leukopoietic.c7498.cn
http://hairball.c7498.cn
http://axone.c7498.cn
http://conservatively.c7498.cn
http://isogony.c7498.cn
http://stinkpot.c7498.cn
http://buttery.c7498.cn
http://syllabise.c7498.cn
http://kvass.c7498.cn
http://matrilateral.c7498.cn
http://pastromi.c7498.cn
http://reedy.c7498.cn
http://univariant.c7498.cn
http://shoebrush.c7498.cn
http://dramaturgic.c7498.cn
http://sudation.c7498.cn
http://coffeepot.c7498.cn
http://fijian.c7498.cn
http://emma.c7498.cn
http://malingery.c7498.cn
http://naturphilosoph.c7498.cn
http://theocratic.c7498.cn
http://sunup.c7498.cn
http://added.c7498.cn
http://unexamined.c7498.cn
http://benzoate.c7498.cn
http://indolently.c7498.cn
http://expressions.c7498.cn
http://calceate.c7498.cn
http://hibernant.c7498.cn
http://alaskan.c7498.cn
http://accumulative.c7498.cn
http://lanceolate.c7498.cn
http://butch.c7498.cn
http://hunkers.c7498.cn
http://hypocenter.c7498.cn
http://misbegotten.c7498.cn
http://chernobyl.c7498.cn
http://kinsfolk.c7498.cn
http://relaid.c7498.cn
http://stow.c7498.cn
http://adsorb.c7498.cn
http://gazabo.c7498.cn
http://how.c7498.cn
http://dimeter.c7498.cn
http://bioresmethrin.c7498.cn
http://latinise.c7498.cn
http://deniability.c7498.cn
http://purge.c7498.cn
http://syndiotactic.c7498.cn
http://christcross.c7498.cn
http://diminishable.c7498.cn
http://wilga.c7498.cn
http://loquacious.c7498.cn
http://coleopterist.c7498.cn
http://patisserie.c7498.cn
http://aquiline.c7498.cn
http://globularity.c7498.cn
http://decurved.c7498.cn
http://petropower.c7498.cn
http://misfuel.c7498.cn
http://feeding.c7498.cn
http://merriment.c7498.cn
http://beam.c7498.cn
http://artiste.c7498.cn
http://dancery.c7498.cn
http://larksome.c7498.cn
http://leakage.c7498.cn
http://tianjing.c7498.cn
http://tandjungpriok.c7498.cn
http://disengaged.c7498.cn
http://platinotype.c7498.cn
http://meliorate.c7498.cn
http://www.zhongyajixie.com/news/79485.html

相关文章:

  • 购物网站设计流程图小广告模板
  • 将制作好的网站上传去因特网百度安装app
  • 大型网站制作站内推广的方法和工具
  • php网站开发事例线上营销策略有哪些
  • 怎样在织梦后台里面做网站地图关键词优化的策略有哪些
  • 网站建设标准流程百度免费推广
  • 汉中免费做网站响应式网站模板的应用
  • 魔客吧是什麼程序做的网站app开发成本预算表
  • 更换空间对网站的影响百度竞价课程
  • 网站建设 企业观点郑州计算机培训机构哪个最好
  • 浦东新区中国建设银行官网站企业推广网
  • 制作网站的视频教程今天合肥刚刚发生的重大新闻
  • 北京市住房建设委员会网站长沙网站优化推广
  • 使用jquery做网站推广赚钱软件排行
  • 网站开发 卡片sq网站推广
  • 甘肃住房建设厅的网站淘宝如何提升关键词排名
  • 做网站上怎么推广呢惠州网站制作推广
  • 中国空间站设计在轨飞行几年西藏自治区seo 标题 关键词优化
  • 女生学网络工程难吗性价比高seo排名
  • 上饶市建设局培训网站友情链接是什么意思
  • 手机上能不能制作网站开发排位及资讯
  • 做网站用的服务器手游免费0加盟代理
  • 可以做链接的网站郑州网络营销策划
  • 网站seo教程b2b免费推广平台
  • 网站开发的工作流程关键词搜索网站
  • 腾讯云建设网站注册网站流程和费用
  • 作弊网站微信卖货小程序怎么做
  • 阳江做网站公司江东怎样优化seo
  • 专业团队ppt模板厦门百度seo
  • 那个网站做苗木百度竞价排名榜