1. 有向完全图
-
含有n个顶点的有向完全图有n(n-1)条边
-
n个顶点的无向图中含有向边的数目最多为n*(n-1)/2
-
n个顶点的无向图中含有向边的数目为最少为(n-1)
2. 闰年
闰年的标准:能除以400,或者除以4但不能除以100(整除)
3. 约数
又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。
if((n/i)*i==n){
count++;
}
4. 素数
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
/**
* 测试num是否素数
* @param num
* @return
*/
public static boolean isPrime(long num) {
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
5. 英语辅音
英语有26个字母。元音只包括a、e、i、o、u这五个字母,其余的都为辅音。y是半元音、半辅音字母,但在英语中都把他当作辅音。
6. 判断字符串有无重复字符串
public static boolean checkDifferent(String iniString){
if(StringUtils.isEmpty(iniString)){
return true;
}
int[] flag = new int[128];
//扫描字符串
for (int i = 0; i < iniString.length(); i++){
int c = iniString.charAt(i);
if (flag[c] > 0){
return false;
}else {
flag[c]++;
}
}
return true;
}
7. 有无子字符串
// 该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。
String.contains()
8. 翻转字符串
public static String reverse1(String s){
int n = s.length();
char[] charArr = new char[n];
for (int i = 0; i < n; i++){
charArr[i] = s.charAt(n - 1 - i);
}
return new String(charArr);
}
public static String reverse2(String s){
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString();
}
9. 位运算
1. 判断奇偶数
(num & 1) == 1 ? '奇数' : '偶数'
2. 数值交换
int num1 = 10;
int num2 = 20;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
System.out.println("num1 =" + num1 + "num2 =" + num2); // num1 =20 num2 =10
3. 求绝对值
int num3 = -20;
System.out.println(num3 + "的绝对值是" + ((num3 ^ (num3 >> 31)) + (num3 >>> 31)));