flash cms网站源码,如何用wordpress 做购物车,国外自助建站,vs2012 做网站教程LeetCode 69.x的平方 思路#xff1a;
二分查找。从1到x进行二分查找#xff0c;每次判断mid的平方是否x#xff0c; 如果是#xff0c;则更新ansmid#xff0c;并缩小区间#xff1b; 如果不是#xff0c;则缩小区间#xff1b; 最后则找到最接近的ans#xff0…LeetCode 69.x的平方 思路
二分查找。从1到x进行二分查找每次判断mid的平方是否x 如果是则更新ansmid并缩小区间 如果不是则缩小区间 最后则找到最接近的ans使得ans的平方x且ans1的平方x即ans为x的算术平方根 注意x数据范围为int型的取值范围则计算平方的时候需要注意可能会溢出
代码
#includestdio.h
#includevector
#includestring.h
#includealgorithm
using namespace std;class Solution
{
public:int mySqrt(int x){int left1;int rightx;int ans0;while(leftright){long long midleft((right-left)1);long long squaremid*mid;if(squarex){leftmid1;ansmid;}elserightmid-1;}return ans;}
};int main()
{int target9;Solution *solutionnew Solution();printf(%d\n,solution-mySqrt(target));delete(solution);return 0;
} 总结 做这道题的时候没有想明白二分能找到最接近的值脑子可能当时宕机了归根结底还是对二分的理解不透彻。 还有要注意运算符(-)的优先级要高于运算符()注意要加括号在此记录