当前位置: 首页 > news >正文

day11—编程题

文章目录

  • 1.第一题
    • 1.1题目
    • 1.2涉及的相关知识
    • 1.3思路
    • 1.4解题
  • 2.第二题
    • 2.1题目
    • 2.2思路
    • 2.3解题

1.第一题

1.1题目

描述:
将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身

1.2涉及的相关知识

满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树

满二叉树中:parent = child/2

1.3思路

  1. 找到a,b两个节点中较大的结点数,让它的值除以2,直到两个数相等
  2. 返回循环后a,b两数的任意一个值

1.4解题

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 b;}
}

2.第二题

2.1题目

描述:
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入描述:
输入一个int类型数字
输出描述:
输出转成二进制之后连续1的个数

2.2思路

  1. 定义两个变量分别存储当前1连续出现的次数和1连续出现的最多的次数
  2. 让输入的数与1相与,如果结果为1,次数就加1,否则就把当前1连续出现的次数置为0,然后让输入的数左移一位
  3. 输出1连续出现的最多的次数

2.3解题

import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int count = 0;int ret = 0;while(n != 0){if((n & 1) == 1){count++;ret = Math.max(ret,count);}else{count = 0;}n>>=1;}System.out.println(ret);}
}
http://www.lryc.cn/news/44454.html

相关文章:

  • CentOS下安装crontab及cron表达式解析
  • python 绘制训练曲线--基于Numpy.convolve曲线平均滤波
  • 状态管理插件vuex
  • arthas—阿里开源的Java诊断工具
  • Java学习记录
  • OpenGL API 之 glVertexAttribPointer
  • 蓝桥杯真题4
  • day02_基本语法
  • 多线程之单例模式
  • 2023年绿色建筑国际会议(ICoGB 2023) | Springer独立出版
  • Python中进程和线程到底有什么区别?
  • 2023美赛春季赛F题思路数据代码论文分享
  • 念一句咒语 AI 就帮我写一个应用,我人麻了...
  • 开放平台设计之接口签名认证
  • Vue自创插件发布到npm以及使用方法
  • 合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等实践技术
  • Java刷题,蓝桥杯省赛第十二届(第一场)4-------------6
  • Docker Cgroups——Docker 资源限制背后的技术原理
  • 十四. MySQL 锁相关
  • ModStartBlog v7.0.0 网站简单统计,支持博客分享
  • 【C语言蓝桥杯每日一题】—— 递增序列
  • node_express框架01
  • 想转行做程序员,该怎么选择开发语言?哪个岗位工资最高?
  • JavaWeb——【笔记】3.2JavaWeb_Web核心_Request(请求)+Response(响应)
  • HTML 标签和属性
  • MySQL 连接的使用
  • 配置案例丨EtherCAT转Profinet网关连接凯福科技总线步进驱动器
  • VSCODE连接ssh服务器时提示could not establish connection to解决方法
  • 网络安全之防火墙 双机热备实验
  • Java高频面试题(2023最新整理)