简单题重拳出击
class Solution {
public int purchasePlans(int[] nums, int target) {
int ans = 0;
int mod = 1000000007;
Arrays.sort(nums);
int n = nums.length;
int l = 0, r = n - 1;
while(l < r){
int sum = nums[l] + nums[r];
if(sum <= target){
ans += r - l;
l ++;
}else{
r --;
}
ans %= mod;
}
return ans % mod;
}
}
不太会的中等题 cv题解
class Solution {
public int orchestraLayout(int num, int x, int y) {
long circle = Math.min(Math.min(x,num-1-x), Math.min(y,num-1-y));
long len = num-1-2*circle;
long count = (long)num*num - (len+1)*(len+1);
if(x == circle && y < num-1-circle){
count += y - circle + 1;
}else if(y == num-1-circle && x < num-1-circle){
count += len + x-circle+1;
}else if(x == num-1-circle && y>circle){
count += 2*len + num-circle-y;
}else{
count += 3*len + num-circle-x;
}
return (int)(count%9==0?9:count%9);
}
}