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

【LeetCode】2749. 得到整数零需要执行的最少操作数

2749. 得到整数零需要执行的最少操作数

题目描述

在这里插入图片描述

题目分析

根据题目描述,需要计算num1−(2i+num2)num_1-(2^i+num_2)num1(2i+num2)经过多少次运算可以变成0。
进一步列等式,假设,最少经过nnn次,可以得到值为0

  1. a0−2x1−b=a1a_0-2^{x_1}-b=a_1a02x1b=a1
  2. a1−2x2−b=a2a_1-2^{x_2}-b=a_2a12x2b=a2
  3. .........
  4. an−2xn−b=0a_n-2^{x_n}-b=0an2xnb=0

合并为a0−nb=2x1+2x2+...+2xna_0-nb=2^{x_1}+2^{x_2}+...+2^{x_n}a0nb=2x1+2x2+...+2xn,其中x∈[0,60]x \in [0,60]x[0,60],则2x1+2x2+...+2xn≥n2^{x_1}+2^{x_2}+...+2^{x_n} \geq n2x1+2x2+...+2xnn

首先,等式要成立,a0−nb≥na_0-nb\geq na0nbn,如果左边小于n,则无论如何都不可能满足。
再次,从二进制角度来分析等式左右两边等于的可能性

  1. n=1,右边最多只有一个1,而左边有可能1的数量不定
  2. n=2,右边最多只有两个1,可以表示,有1或2个1的数
  3. n=3,右边最多只有三个1,可以表示,有1、2或3个1的数
  4. .........
  5. 可得,n个1,可以表示存在1,2,...,n{1,2,...,n}1,2,...,n个1的数,即等式成立

所以,可以测得一个判断条件,a0−nb≥nandbits(a0−nb)≤na_0-nb\geq n \ and \ bits(a_0-nb) \leq na0nbn and bits(a0nb)n,即等式成立,代表最少n次可以满足题目条件

代码

class Solution {
public:int makeTheIntegerZero(int num1, int num2) {long long num = num1-(long long)num2;if(num < 0) return -1;int len=0;for(int i=1;true;i++){   if(num< i) return -1;if(num>=i && __builtin_popcountll(num) <= i) return i;num -= (long long)num2;  if(num < 0) return -1;}return -1;  }
};
http://www.xdnf.cn/news/20363.html

相关文章:

  • 关于无法导入父路径的问题
  • MySQL源码部署(rhel7)
  • SQL面试题及详细答案150道(61-80) --- 多表连接查询篇
  • java面试中经常会问到的集合问题有哪些(基础版)
  • GigaDevice(兆易创新)GD25Q64CSJGR 64Mbit FLASH
  • c#动态树形表达式详解
  • uni-app 和 uni-app x 的区别
  • 【Cell Systems】SpotGF空间转录组去噪算法文献分享
  • 图像去雾:从暗通道先验到可学习融合——一份可跑的 PyTorch 教程
  • <video> 标签基础用法
  • MySQL-安装MySQL
  • UE4 Mac构建编译报错 no template named “is_void_v” in namespace “std”
  • 无需bootloader,BootROM -> Linux Kernel 启动模式
  • Java全栈开发工程师面试实录:从基础到实战的深度探讨
  • PyTorch图像数据转换为张量(Tensor)并进行归一化的标准操作
  • 管理中心理学问:动机与管理的关联
  • 什么是CRM?定义、作用、功能、选型|CRM百科
  • 使用若依加Trae快速搭建一对儿多对多CRUD
  • 移植Qt4.8.7到ARM40-A5
  • PiscCode基于 Mediapipe 实现轨迹跟踪
  • TOGAF之架构标准规范-迁移计划
  • nginx 反向代理使用变量的坑
  • 亚马逊商品转化率怎么提高?从传统运营到智能广告的系统化突破
  • Nginx 配置片段主要用于实现​​正向代理​​,可以用来转发 HTTP 和 HTTPS 请求
  • LangChain关于提示词的几种写法
  • 深度学习:Dropout 技术
  • c++ 第三方库与个人封装库
  • 【完整源码+数据集+部署教程】西兰花实例分割系统源码和数据集:改进yolo11-AggregatedAtt
  • leetcode 6 Z字形变化
  • 基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档