Java算法 leetcode简单刷题记录5
-  老人的数目: https://leetcode.cn/problems/number-of-senior-citizens/ 
 substring(a,b) 前闭后开
-  统计能整除数字的位数: https://leetcode.cn/problems/count-the-digits-that-divide-a-number/ 
 并不复杂,直接写就行
-  从数量最多的堆取走礼物: https://leetcode.cn/problems/take-gifts-from-the-richest-pile/ 
 一堆数里依次每次取出最大值,或者最小值,都可以用优先级队列PriorityQueue;
 注意:最后求和int可能越界,用long类型
class Solution {public long pickGifts(int[] gifts, int k) {// 保证每次队列弹出最大值PriorityQueue<Integer> queue = new PriorityQueue<Integer>((obj1, obj2) -> {return obj2 - obj1;});for (int gift : gifts) {queue.add(gift);}int i = 0;while (i < k && queue.size() > 0) {int q = queue.poll();queue.add((int) Math.sqrt(q));i++;}long sum = 0;while (queue.size() > 0) {sum += queue.poll();}return sum;}
}