发现没有递归方式写的,提供一个。
import java.util.*;
public class Solution {
/**
*
* @param x int整型
* @return int整型
*/
public int mysqrt (int x) {
if(x==1) return x;
return mysqrtSub(x,1,x/2);
}
public int mysqrtSub(int x, int min, int high){
if(min>high) return high;
int mid = min+(high-min+1)/2;
int s = x/mid;
if(mid > s){
return mysqrtSub(x,min,mid-1);
}else if(mid < s){
return mysqrtSub(x,mid+1,high);
}else{
return mid;
}
}
}

京公网安备 11010502036488号