最接近原点的K个点
题目
973. 最接近原点的 K 个点 - 力扣(LeetCode)
思路
这就是一道排序题,直接根据公式排序,然后返回对应范围的数组就行了
代码
public int[][] kClosest(int[][] points, int k) {
Arrays.sort(points, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return ((o1[0]*o1[0]+o1[1]*o1[1])-(o2[0]*o2[0]+o2[1]*o2[1]));
}
});
return Arrays.copyOfRange(points,0,k);
}
和为K的最少斐波那契数字数目
题目
1414. 和为 K 的最少斐波那契数字数目 - 力扣(LeetCode)
思路
首先用三个变量模拟斐波那契数列,当数列最大值大于k时终止模拟
遍历集合,从最大值开始,就可以找到最少的数目
代码
public int findMinFibonacciNumbers(int k) {
List<Integer> list = new ArrayList<>();
int a=1;
int b=1;
while(a+b<=k){
int c=a+b;
list.add(c);
a=b;
b=c;
}
int sum = 0;
for(int i=list.size()-1;i>=0&&k>0;i--){
int t = list.get(i);
if(k>=t){
sum++;
k=k-t;
}
}
return sum;
}