2019-11-11
2019-11-12 本文已影响0人
小生_chen
1、判断回文数
思路:
通过mod 和 除数算出的数字,判断是否与传入数字相等
public static boolean isPalindtNumber(int number) {
int x = number;
int num = 0;
while (x != 0) {
num = num * 10 + x % 10;
x = x / 10;
}
return num == number;
}
2、Top k
思路:
最小堆
BFPRT算法
选取主元;
1.1. 将n个元素按顺序分为$⌊\frac n5⌋$个组,每组5个元素,若有剩余,舍去;
1.2. 对于这$⌊\frac n5⌋$个组中的每一组使用插入排序找到它们各自的中位数;
1.3. 对于 1.2 中找到的所有中位数,调用BFPRT算法求出它们的中位数,作为主元;
以 1.3 选取的主元为分界点,把小于主元的放在左边,大于主元的放在右边;
判断主元的位置与k的大小,有选择的对左边或右边递归。