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

蓝桥算法基础2

位运算

请添加图片描述 请添加图片描述

  • 按位与,x&1=x%2.因为1不论和几位二进制与,都只有最后一位为1,前面都是0,那么&前面也都为0,只有最后一位,若为1那么2的0次方为1,该数一定为奇数,与取余结果同,均为1.若为0,那么就为偶数。可以节约时间
  • 按位异或,这里记住,相同数异或结果为0,不同数异或结果不为0,可以用来判断
  • 移位运算符。可以求×2或÷2,也可以求2的几次幂。1<<2即将122也就是求2的2次方。依次类推。
    请添加图片描述

要明确,计算机中用的是补码!!!也就是说当给定一个正数时我们就是将其转换为补码,12其二进制是1100(正数的原码反码补码都相同),此时就是先求12的相反数。其原码就是正数符号位变。通过上图可以看出在与运算时,最后只有最低位11为1,因为前面通过反码操作都不同,而后面通过补码+1将最后一位为1的进位加回来了。故x&-x可以求lowbit

  • 我们可以利用它来实现一些高效的算法,比如求一个数的二进制表示中有多少个1(通过删最后一位的1,x&=(x-1)),或者维护一个数组的前缀和,快速求树状数组的层数 等等
  • lowbit 也可以快速求出这个二进制数的末尾有几个0, lowbit(x) = 2^{k} ,k 则表示末尾有几个零请添加图片描述
    单纯x>>i只是右移不会改变x,所以循环可以遍历每一位
    请添加图片描述

整数二分请添加图片描述

请添加图片描述
最终推出循环一定就是l=r,所以直接判断就好啦
因为求最左边,所以当等于时仍然要往左边缩小范围,也就是<=时。
请添加图片描述
框起来的是要绑死的请添加图片描述
这是有序区间,若最右边都小了,那么就都小了。
请添加图片描述
请添加图片描述

1e5也就是10的5次方,简写。在输入那一栏中看看输入数据的大小,然后在设置时将数设置大一些

分巧克力

请添加图片描述
这里是分巧克力,那么就要长宽都分,所以用两个去分别除比较,而不是相乘再相除。

浮点数二分(了解即可,出的少)

数的M次方根
请添加图片描述
浮点数出的少,因为误差很小,精度,但是算法没错,误差是无法确定的所以了解即可
请添加图片描述

双指针

请添加图片描述

左右指针

严格递增:这个序列中不存在任何两个数相等

请添加图片描述

请添加图片描述
请添加图片描述

快慢指针

请添加图片描述
请添加图片描述
请添加图片描述

Java中常见API

BigIntege

请添加图片描述
请添加图片描述

请添加图片描述请添加图片描述请添加图片描述

请添加图片描述

Arrays

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述


http://www.kler.cn/a/536257.html

相关文章:

  • 【1】高并发导出场景下,服务器性能瓶颈优化
  • 深入浅出 NRM:加速你的 npm 包管理之旅
  • UE5 蓝图学习计划 - Day 12:存储与加载
  • 10. 神经网络(二.多层神经网络模型)
  • HTML学习笔记(6)
  • 6 加密技术与认证技术
  • EtherCAT帧捕获与帧结构分析
  • 基于Bootstrap + Java + Oracle实现的电商平台
  • DeepSeek图解10页PDF
  • STM32自学记录(八)
  • 【ArcGIS Pro 简介1】
  • Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start
  • Day56_20250204_图论part1_图论理论基础|深搜理论基础|98.所有可达路径|广搜理论基础
  • Jetson AGX Orin折腾记
  • PEP8代码规范
  • Rust语言进阶之标准输出:stdout用法实例(一百零六)
  • vue高级面试题
  • Mac本地体验LM studio
  • (动态规划基础 整数拆分)leetcode 343
  • 如何在macOS上安装Ollama
  • 航电系统之通信模块篇
  • 【Uniapp-Vue3】使用uni.$emit和$on页面通讯实现发布成功即时更新数据
  • 基于 Three.js 实现的爱心2025粒子特效
  • BUU28 [GXYCTF2019]BabySQli1
  • baigeiRSA
  • Ubuntu22.04操作系统4090显卡电脑本地化部署DeepSeek