- 题目一
- 1.题目:最近共同祖先
- 2.思路
- 3.代码实现
- 题目二
- 1.题目:求最大连续bit数
- 2.思路
- 3.代码实现
题目链接:最近共同祖先
2.思路 3.代码实现import java.util.*;
public class LCA {
public int getLCA(int a, int b) {
while(a != b){
if(a>b){
a = a/2;
}else{
b = b/2;
}
}
return a;
}
}
题目二
1.题目:求最大连续bit数
题目链接:求最大连续bit数
2.思路- 定义一个计数器count,然后让n&1,判断是否等于1,如果等于则count++,并且让max取count与max二者的最大值。
- 如果&1 != 1,则让计数器设为0.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
int num = in.nextInt();
int max = 0;
int count = 0;
while(num != 0){
if((num&1) == 1){
count++;
max = Math.max(max,count);
}
else{
count = 0;
}
num >>>= 1;
}
System.out.println(max);
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)