【每日一题】【直接循环&二分查找】2022年2月10日-NC32 求平方根
描述
实现函数 int sqrt(int x).
计算并返回 x 的平方根(向下取整)
方法1:直接循环
import java.util.*; public class Solution { /** * * @param x int整型 * @return int整型 */ public int sqrt (int x) { for (int i = 1; i <= x; i++) { if(i * i == x) { return i; } if(i * i > x) { return i - 1; } } return 0; } }
方法2:二分查找
import java.util.*; public class Solution { /** * * @param x int整型 * @return int整型 */ public int sqrt (int x) { if (x == 0) { return 0; } int low = 1, high = x; for(int i = 1; i <= x; i++) { int mid = low + ((high - low) >> 1); if(mid > x / mid) { high = mid - 1; } else { if((mid + 1) > x / (mid + 1)) { return mid; } low = mid + 1; } } return low; } }
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15877810.html