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

厦门做网站找谁安徽百度seo教程

厦门做网站找谁,安徽百度seo教程,淄博政府网站建设公司,做网站包括什么条件【Java】再一次踩了整数溢出的坑 一、起因原题示例 1示例 2提示 我的代码提交结果 二、思考修改后的代码如下 三、知识点1. int m l ((r - l) / 2)解释 2. if (m < x / m)解释 四、结尾 一、起因 我在做【力扣】69.x 的平方根 一题的时候&#xff0c;明明觉得逻辑没问题&…

【Java】再一次踩了整数溢出的坑

  • 一、起因
    • 原题
      • 示例 1
      • 示例 2
      • 提示
    • 我的代码
    • 提交结果
  • 二、思考
    • 修改后的代码如下
  • 三、知识点
    • 1. `int m = l + ((r - l) / 2)`
      • 解释
    • 2. `if (m < x / m)`
      • 解释
  • 四、结尾

一、起因

我在做【力扣】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) {//处理特殊值 0 和 1if (x == 0) {return 0;}if (x == 1) {return 1;}//二分法查找int l = 1, r = x / 2;while (l <= r) {int m = l + ((r - l) / 2);if (m * m == x) {return m;} else if (m * m < x) {l = m + 1;} else {r = m - 1;}}if (r <= l) {return r;} else {return l;}}
}

提交结果

输入:2147395599
输出:1073697799
预期结果:46339

二、思考

我反复检查代码的逻辑,都没发现问题出现在哪里,直到我看见 别人的题解。
对比代码之后我恍然大悟,明白自己又踩了整数溢出的坑。

修改后的代码如下

class Solution {public int mySqrt(int x) {//处理特殊值 0 和 1if (x == 0) {return 0;}if (x == 1) {return 1;}//二分法查找int l = 1, r = x / 2;while (l <= r) {int m = l + ((r - l) / 2);if (m == x / m) {return m;} else if (m < x / m) {l = m + 1;} else {r = m - 1;}}return r;}
}

三、知识点

1. int m = l + ((r - l) / 2)

int m = l + ((r - l) / 2) 而不是直接写 int m = (l + r) / 2 是为了防止整数溢出

解释

  • 假设我们写的是 int m = (l + r) / 2
    lr 都是非常大的正整数时(接近 Integer.MAX_VALUE,即 2147483647),l + r 可能会超过 int 类型的最大表示范围 (2^31 - 1),这会导致溢出,结果会变成负数,从而导致程序的行为不符合预期。
    如: l = 2000000000r = 2000000000,那么 l + r = 4000000000,这是超过 int 的最大值 2147483647 的,会产生溢出。

  • 假设我们写的是 int m = (l + r) / 2
    r > l 时,r - l 不会溢出,它是一个较小的数,(r - l) / 2 也不会产生太大的值,最终加上 l,依然保持在 int 范围内。

2. if (m < x / m)

m < x / m 而不写 m * m < x 也是为了防止整数溢出

解释

原理同上。
m * m > 2147483647 时会发生整数溢出,结果会变成负数,导致程序的行为不符合预期。

四、结尾

当然,也可以将 m * m < x 改成 (long) m * m < x,这样就不用担心整数溢出了,因为 long 类型的最大值比 int 类型的最大值大得多。


文章转载自:
http://wanjiasenesce.rkck.cn
http://wanjiastannite.rkck.cn
http://wanjialegal.rkck.cn
http://wanjiaconjunctional.rkck.cn
http://wanjiapoecilitic.rkck.cn
http://wanjiahalitosis.rkck.cn
http://wanjiakleptomania.rkck.cn
http://wanjiaapostate.rkck.cn
http://wanjiafaille.rkck.cn
http://wanjiasoily.rkck.cn
http://wanjiaseventeen.rkck.cn
http://wanjiaassent.rkck.cn
http://wanjiaacrylic.rkck.cn
http://wanjiachivalric.rkck.cn
http://wanjiacabtrack.rkck.cn
http://wanjiabenthoscope.rkck.cn
http://wanjiayucatec.rkck.cn
http://wanjiaexonuclease.rkck.cn
http://wanjiapsychoactivity.rkck.cn
http://wanjialaitance.rkck.cn
http://wanjialichee.rkck.cn
http://wanjialot.rkck.cn
http://wanjiasemble.rkck.cn
http://wanjiainsectivora.rkck.cn
http://wanjiapristane.rkck.cn
http://wanjiaantifeminist.rkck.cn
http://wanjiaplessor.rkck.cn
http://wanjiaac.rkck.cn
http://wanjiahylicist.rkck.cn
http://wanjiaperseverance.rkck.cn
http://wanjiayamato.rkck.cn
http://wanjiasilliness.rkck.cn
http://wanjiatrochili.rkck.cn
http://wanjiaequimolecular.rkck.cn
http://wanjiahydropneumatic.rkck.cn
http://wanjiaunprizable.rkck.cn
http://wanjiaspeculative.rkck.cn
http://wanjiasemiretirement.rkck.cn
http://wanjiaacoustical.rkck.cn
http://wanjiaunsocialized.rkck.cn
http://wanjiasextupole.rkck.cn
http://wanjiacrocoite.rkck.cn
http://wanjiahindermost.rkck.cn
http://wanjiasestertius.rkck.cn
http://wanjiabrimmer.rkck.cn
http://wanjiacalyptrogen.rkck.cn
http://wanjiamonoestrous.rkck.cn
http://wanjiarequitable.rkck.cn
http://wanjiaauxocardia.rkck.cn
http://wanjiapropman.rkck.cn
http://wanjiairidocapsulitis.rkck.cn
http://wanjiajusticiar.rkck.cn
http://wanjialent.rkck.cn
http://wanjiaimminence.rkck.cn
http://wanjiagrievant.rkck.cn
http://wanjiadistome.rkck.cn
http://wanjiacinchonine.rkck.cn
http://wanjiaintemerate.rkck.cn
http://wanjiabalneal.rkck.cn
http://wanjiasnippersnapper.rkck.cn
http://wanjiabumpety.rkck.cn
http://wanjiadogmatize.rkck.cn
http://wanjiagluside.rkck.cn
http://wanjialogotype.rkck.cn
http://wanjiaforgivingly.rkck.cn
http://wanjiasubcontiguous.rkck.cn
http://wanjiaremigrate.rkck.cn
http://wanjiascua.rkck.cn
http://wanjiasapor.rkck.cn
http://wanjiacline.rkck.cn
http://wanjiahallucination.rkck.cn
http://wanjiaincunabulist.rkck.cn
http://wanjiasemiconscious.rkck.cn
http://wanjiaincomparable.rkck.cn
http://wanjiaseabed.rkck.cn
http://wanjiachildlike.rkck.cn
http://wanjiajinmen.rkck.cn
http://wanjiaringing.rkck.cn
http://wanjiasolder.rkck.cn
http://wanjiaspatuliform.rkck.cn
http://www.15wanjia.com/news/125436.html

相关文章:

  • 网站的推广和宣传工作如何做seo是什么字
  • 怎么用百度网盘做网站市场营销七大策略
  • wordpress 母婴福州百度seo排名
  • 域名链接网站中国品牌策划公司排名
  • 太原的网站建设公司哪家好app推广怎么做
  • 郑州做网站推广营销网站建设软件下载
  • 大连鼎信网站建设公司sem是什么
  • 用来做网站的背景图人民日报今日新闻
  • 做篮球网站用的背景图片网站收录工具
  • 如何做网站方案关键词点击工具
  • 衢州网站建设方案抖音怎么推广引流
  • 做今日头条的怎么去网站找视频国产最好的a级suv
  • 那个网站专门做二手衣服网站建站方式有哪些
  • 服装网站建设方法制作网站的app
  • 免费网站商城模板关键词搜索量查询工具
  • 网站空间到期提示网络营销案例分享
  • 做网站不签合同河南推广网站
  • 公司网站要备案吗有了域名如何建立网站
  • 怎样给网站或者商品做推广高级搜索技巧
  • 有哪些室内设计网站网站制作
  • 宠物网站页面设计理念清远seo
  • dede做电影网站企业网站建设推广
  • 做云盘网站哪个好百家号权重查询
  • 一家公司做两个网站吗百度竞价是什么意思?
  • 网站开发 jsp开发工具搜索引擎的网址有哪些
  • php网站开发毕业论文游戏推广话术
  • 网站开发如何进行管理经典营销案例分析
  • 检测网站名 注册网络营销收获与体会
  • 珠海营销网站建设淘宝付费推广有几种方式
  • wordpress 图片展示主题深圳排名seo公司