FTPrep, 69 Sqrt(x)
来源:互联网 发布:java 定义object数组 编辑:程序博客网 时间:2024/06/01 08:26
二分法解题,关键就是确定left 和 right,while 条件,和内部的变化。这道题,要有画面感,2条曲线: y=x, y=x*x ,这样在取第一个 right时,就是准确取到 right = x/2 + 1
另外在判断 while 内部的条件时,可以通过考虑1,2这种简单的case来判断有没有等号,因为 mid = (left + right)/2 这是肯定的。
本题的特点:退出条件是 一个区间,更新left和更新right也都是一个区间。一定要完全cover,不能有遗漏也不能有重合。
另外在判断 while 内部的条件时,可以通过考虑1,2这种简单的case来判断有没有等号,因为 mid = (left + right)/2 这是肯定的。
本题的特点:退出条件是 一个区间,更新left和更新right也都是一个区间。一定要完全cover,不能有遗漏也不能有重合。
代码:
class Solution { public int mySqrt(int x) { if(x<0) return -1; if(x==0) return 0; int left = 1; // key int right = x/2+1; // think about the case: 1, also the curve of y=x*x and y=x, straight line. while(left<=right){ // think about the case: 1, int mid= left+(right-left)/2; if( mid<= x/mid && x/(mid+1)<(mid+1)) return mid; else{ if(x/(mid+1)>=(mid+1)) left=mid+1; else right= mid-1; // } } return 0; }}
阅读全文
0 0
- FTPrep, 69 Sqrt(x)
- Leetcode 69 sqrt(x)
- leetcode 69 Sqrt(x)
- [leetcode 69] Sqrt(x)
- [leetcode] 69 Sqrt(x)
- leetcode-69 Sqrt(x)
- LeetCode 69 Sqrt(x)
- leetcode || 69、Sqrt(x)
- LeetCode 69 Sqrt(x)
- LeetCode-69 Sqrt(x)
- 69 Sqrt(x)
- Sqrt(x) - LeetCode 69
- leetcode 69:Sqrt(x)
- LeetCode---(69)Sqrt(x)
- Leetcode #69 Sqrt(x)
- LeetCode(69) Sqrt(x)
- leetcode 69: Sqrt(x)
- Leetcode#69||Sqrt(x)
- Python键盘输入转换为列表
- MTK启动短信优化闪屏(闪白屏或者黑屏)
- 两张趣图理解状态码的含义
- 实习日常(开篇)
- NYOJ 2 括号配对问题
- FTPrep, 69 Sqrt(x)
- eclipse 中使用Git还原已修改的文件
- SpringMVC+Maven开发最小“自然语言理解”项目攻略(附源码打包下载及详细说明)
- 坐标上升算法
- NDK优化方向
- java整理(面向对象基础知识--类与对象)
- WibuKey CodeMeter AxProtector CmActLicense CmDongle CodeMeter加密狗破解复制模拟
- sun.misc.BASE64Decoder在eclipse中报错
- POJ 1797 Heavy Transportation