【day11】最近公共祖先最大连续bit数

news/2024/7/5 3:23:22

最近公共祖先__牛客网

 

求父节点:父节点 = 孩子节点/2

(1)输入a ,b  如果a==b,表示ab的公共祖先就是ab本身

(2)如果ab不相同,循环while哪个大,哪个除以2,直到相同为止

import java.util.*;

public class LCA {
    public int getLCA(int a, int b) {
        // write code here
        while(a != b){
            if(a > b){
                a/=2;
            }else{
                b/=2;
            }
        }
        return a;
    }
}

 


求最大连续bit数_牛客题霸_牛客网

该题的解题思路

(1) 任何不为0的数按位与1,结果都是1,也就是最低为是1

所以,二进制数,看最低位,让n&1,如果n&1等于1,就代表最低位为1,就计数count++

接着让n右移1,更新n的最低位为倒数第二位,接着循环上述代码,如果为0,count清空,同时记录下count清空前的结果

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            int n = in.nextInt();
            int count = 0;
            int modCount = 0;
            while(n != 0){
                if((n & 1) == 1){
                    count++;
                    modCount = Math.max(count,modCount);
                }else{
                    count = 0;
                }
                n >>= 1;
            }
            System.out.println(modCount);
        }
    }
}


//一些考点

1.标识符:开头不能是数字,不能有空格,不能有*号,可有$符

2.Map -》键值对 -》key-value

key和value可以为null

如果put两次,在第二次put中,key与第一次put相同,就相当于操作第一个键值对,如果value不同会被覆盖,这时map里只有一个值,不是两个值

3.Statement > PrepareStatement > CallableStatement (>表示父类关系)

4.重载

(1)函数名必须相同

(2)返回值可相同可不相同

(3)必须有不同的形参列表:个数同类型排列不同/个数不同

5.接口是实现,不是继承

(1)LinkedList实现List接口

(2)AbstractSet实现Set接口

(3)HashSet继承自AbstractSet

(4)WeakHashMap继承自HashMap

6.ArrayList list = new ArrayList(20)

new的时候带参数,有object数组传了大小为20的数组,并没有扩充;如果new的时候不带参数,容量大小默认为10,当add到第11个元素时,会以数组1.5倍扩充

7.

8. switch

没有break,就会一直往下滑动执行语句

9.

(1)java.sql:提供java存取数据库的包

(2)java.swing:包含swing组件

(3)java.awt:抽象窗口工具包

(4)java.lang:包含基本包装类和String类


http://lihuaxi.xjx100.cn/news/98252.html

相关文章

关于Linux系统之VM安装配置(每一个步骤都超级详细的哦!)

目录 Linux简介 VM虚拟机的介绍及安装 VM简介 VM安装(详细步骤,根据图片一步一步进行安装) 查看IP配置IP 换源 1)备份Linux自带的EPEL源 2)生成阿里源 3) 清空缓存 4) 重新生成缓存 Linux…

职业转型|经济低迷期转型产品管理职业的五大建议

当前的经济低迷使许多人开始重新评估当前的工作并重新考虑新的职业道路。产品管理是一个非常热门的职业发展方向,受到了求职者们广泛的关注,但于此同时,这也加剧了这个领域的竞争。产品管理的进入门槛本就并不低,在经济衰退期间&a…

[爬虫]4.数据解析及应用 之 bs4【爬取一部小说的文本】

回顾,上节课我们学了什么? 聚焦爬虫 数据解析方式分类:正则表达式;bs4模块;xpath模块 F12查看网页标签的html格式 正则表达式详细表示方法 正则匹配 import re listre.findall(pattern,string,flags) 创建文件夹 爬取和…

python 线程安全和锁

python 线程安全和锁 进程是计算机中最小的资源分配单位。 线程是计算机中能被cpu调度的最小单位。 一、什么是线程? 线程也叫轻量级进程,是操作系统能够进行调度的最小单位,它被包含在进程之中,是进程的实际运作单位。线程自…

简单的介绍一下:柔性数组

对于柔性数组,其实这个是在如今的大学生书本上是很难能找到的!!原因在于:笔者现在就是大学生一枚!!但是在C语言的书本上没有涉及到柔性数组的部分!!经查略资料,我们可以找…

Codeforces Round #827 (Div. 4)

A:给定三个数字,问是否存在1个数字是另外两个的和 void solve(){int a, b, c;cin >> a >> b >> c;if(a b c || a c b || b c a) puts("YES");else puts("NO"); } B:给定一个数组&#xff0…

centos8 安装nginx

安装个 Nginx 配置 vue 还是折腾了会。 下载源码地址: Index of /download/ http://nginx.org/download/nginx-1.20.2.tar.gz 解压 ./configure make make install echo export PATH$PATH:/usr/local/nginx/sbin >> ~/.bashrc source ~/.bashrc 默认配…

SQL之窗口函数

窗口函数介绍 1 窗口函数语法 <窗口函数> over (partition by <用于分组的列名>order by <用于排序的列名>&#xff09;专用窗口函数&#xff0c;比如rank&#xff0c;dense_rank&#xff0c;row_number等 聚合函数&#xff0c;如sum&#xff0c;avg&#…