【牛客刷题13】最近共同祖先与求最大连续bit数

【牛客刷题13】最近共同祖先与求最大连续bit数,第1张

文章目录
  • 题目一
    • 1.题目:最近共同祖先
    • 2.思路
    • 3.代码实现
  • 题目二
    • 1.题目:求最大连续bit数
    • 2.思路
    • 3.代码实现

题目一 1.题目:最近共同祖先

题目链接:最近共同祖先

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.思路
  1. 定义一个计数器count,然后让n&1,判断是否等于1,如果等于则count++,并且让max取count与max二者的最大值。


  2. 如果&1 != 1,则让计数器设为0.
3.代码实现
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);
        }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存