第一题:
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
进阶:不要 使用任何内置的库函数,如 sqrt 。
class Solution {
public boolean isPerfectSquare(int num) {
int l = 0;
int r = num;
while(l<=r){
int mid = l + ((r-l)>>>1);
long an =(long) mid*mid;
if(an<num){
l=mid+1;
}else if(an==num){
return true;
}else{
r = mid-1;
}
}
return false;
}
}
第二题:
给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。
「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。
class Solution {
public int findTheDistanceValue(int[] arr1, int[] arr2, int d) {
int cnt = 0;
for (int x : arr1) {
boolean ok = true;
for (int y : arr2) {
ok &= Math.abs(x - y) > d;
}
cnt += ok ? 1 : 0;
}
return cnt;
}
}