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

leetcode2749. 得到整数零需要执行的最少操作数-medium

1 题目:得到整数零需要执行的最少操作数

官方标定难度:中

给你两个整数:num1 和 num2 。

在一步操作中,你需要从范围 [0, 60] 中选出一个整数 i ,并从 num1 减去 2i + num2 。

请你计算,要想使 num1 等于 0 需要执行的最少操作数,并以整数形式返回。

如果无法使 num1 等于 0 ,返回 -1 。

示例 1:

输入:num1 = 3, num2 = -2
输出:3
解释:可以执行下述步骤使 3 等于 0 :

  • 选择 i = 2 ,并从 3 减去 22 + (-2) ,num1 = 3 - (4 + (-2)) = 1 。
  • 选择 i = 2 ,并从 1 减去 22 + (-2) ,num1 = 1 - (4 + (-2)) = -1 。
  • 选择 i = 0 ,并从 -1 减去 20 + (-2) ,num1 = (-1) - (1 + (-2)) = 0 。
    可以证明 3 是需要执行的最少操作数。

示例 2:

输入:num1 = 5, num2 = 7
输出:-1
解释:可以证明,执行操作无法使 5 等于 0 。

提示:

1 < = n u m 1 < = 1 0 9 1 <= num1 <= 10^9 1<=num1<=109
− 1 0 9 < = n u m 2 < = 1 0 9 -10^9 <= num2 <= 10^9 109<=num2<=109

2 solution

如果 k 次可以完成的话则有:
n u m 1 = ∑ j = 1 k 2 i j + k ∗ n u m 2 num_1 = \sum_{j = 1}^{k}2^{i_j} + k * num_2 num1=j=1k2ij+knum2
所以如果每次用 n u m 1 num_1 num1 减去 n u m 2 num_2 num2 ,如果第 k 次剩余的数 m 能被 k 个2 的次方表示,则 k 就是答案。那怎么确定是否可以呢?这要求此时的 m 的二进制中最多有 k 个 1 并且 m 还要大于等于 k。

代码

class Solution {/** num1 = sum(2**i) + k * num2*/
public:int makeTheIntegerZero(int num1, int num2) {long long y = num1;for (int i = 1;; i++) {y -= num2;if (y < i) return -1;long long x = y;int c = 0;for (; x; x >>= 1) c += x & 1;if (c <= i && c ) return i;}}
};

结果

在这里插入图片描述

相关文章:

leetcode2749. 得到整数零需要执行的最少操作数-medium

1 题目&#xff1a;得到整数零需要执行的最少操作数 官方标定难度&#xff1a;中 给你两个整数&#xff1a;num1 和 num2 。 在一步操作中&#xff0c;你需要从范围 [0, 60] 中选出一个整数 i &#xff0c;并从 num1 减去 2i num2 。 请你计算&#xff0c;要想使 num1 等于…...

14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制

1 浮点类型 1.1 浮点类型概述 浮点类型用于表示小数&#xff08;如 123.4、3.1415、0.99&#xff09;&#xff0c;支持正数、负数和零&#xff0c;是科学计算和工程应用的核心数据类型。 1.2 浮点数的类型与规格 浮点类型存储大小值范围&#xff08;近似&#xff09;实际有效…...

Java 多线程基础:Thread 类核心用法详解

一、线程创建 1. 继承 Thread 类&#xff08;传统写法&#xff09; class MyThread extends Thread { Override public void run() { System.out.println("线程执行"); } } // 使用示例 MyThread t new MyThread(); t.start(); 缺点&#xff1a;Java 单…...

Vue3:脚手架

工程环境配置 1.安装nodejs 这里我已经安装过了&#xff0c;只需要打开链接Node.js — Run JavaScript Everywhere直接下载nodejs&#xff0c;安装直接一直下一步下一步 安装完成之后我们来使用电脑的命令行窗口检查一下版本 查看npm源 这里npm源的地址是淘宝的源&#xff0…...

显性知识的主要特征

有4个主要特征&#xff1a; 客观存在性静态存在性可共享性认知元能性...

使用pytest实现参数化后,控制台输出的日志是乱码

测试用例id显示的是乱码 问题 testcases/test_测试用例.py::TestPro::test_测试用例_用例1**[\u5fc3\u453g2]** PASSED [ 33%] 要让 pytest 在参数化测试中正确显示中文用例名称而非 Unicode 转义字符&#xff0c;可以通过以下两种方法 解决&#xff1a; 全局禁用测试 ID …...

自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件

AutoHotkey 是一种适用于 Windows 的免费开源脚本语言&#xff0c;它允许用户轻松创建从小型到复杂的脚本&#xff0c;用于各种任务&#xff0c;例如&#xff1a;表单填充、自动点击、宏等。 定义鼠标和键盘的热键&#xff0c;重新映射按键或按钮&#xff0c;并进行类似自动更…...

【C++】 —— 笔试刷题day_30

一、爱吃素 题目解析 这道题&#xff0c;简单来说就是给定两个数a和b&#xff0c;然后让我们判断a*b是否是素数。 算法思路 这道题还是比较简单的 首先&#xff0c;输入两个数a和b&#xff0c;这两个数的数据范围都是[1, 10^11]&#xff1b;10的11次方&#xff0c;那a*b不就是…...

React文件上传组件封装全攻略

React文件上传组件封装指南 在现代Web应用开发中,文件上传是一个常见且重要的功能。本文将详细介绍如何使用React封装一个高质量、可复用的文件上传组件,内容涵盖基础实现、高级特性、性能优化和最佳实践等方面。 基础文件上传组件实现 核心功能设计 一个完整的文件上传组…...

`ParameterizedType` 和 `TypeVariable` 的区别

在 Java 的泛型系统中&#xff0c;ParameterizedType 和 TypeVariable 是两个不同的类型表示&#xff0c;它们都属于 java.lang.reflect.Type 接口的子接口。两者都在反射&#xff08;Reflection&#xff09;中用于描述泛型信息&#xff0c;但用途和含义不同。 &#x1f31f; 一…...

PSA Certified

Arm 推出的 PSA Certified 已成为安全芯片设计领域的黄金标准。通过对安全启动、加密服务以及更新协议等方面制定全面的要求&#xff0c;PSA Certified为芯片制造商提供了清晰的路线图&#xff0c;使其能将安全机制深植于定制芯片解决方案的基础架构中。作为对PSA Certified的补…...

项目版本管理和Git分支管理方案

文章目录 一、团队协作1.项目团队与职责2.项目时间线与里程碑3.风险评估与应对措施4.跨团队同步会议&#xff08;定期&#xff09;跨团队同步会议&#xff08;双周) 5.版本升级决策树6.边界明确与路标制定a.功能边界划分b.项目路标制定b1、项目路标制定核心要素b2. 路标表格模板…...

蓝牙AVRCP协议概述

AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和 audio/video 控制功能通信的特 点和过程&#xff0c;另用于远程控制音视频设备&#xff0c;底层传输基于 AVCTP 传输协议。该 Profile 定义了AV/C 数字命令控制集。命令和信息通过 AVCTP(Audio/Video Control Trans…...

2025长三角杯数学建模B题思路模型代码:空气源热泵供暖的温度预测,赛题分析与思路

2025长三角杯数学建模B题思路模型代码&#xff0c;详细内容见文末名片 空气源热泵是一种与中央空调类似的设备&#xff0c;其结构主要由压缩主机、热交换 器以及末端构成&#xff0c;依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载&#xff0c;调节潜力巨…...

基于大数据的租房信息可视化系统的设计与实现【源码+文档+部署】

课题名称 基于大数据的租房信息可视化系统的设计与实现 学 院 专 业 计算机科学与技术 学生姓名 指导教师 一、课题来源及意义 租房市场一直是社会关注的热点问题。随着城市化进程的加速&#xff0c;大量人口涌入城市&#xff0c;导致租房需求激增。传统的租…...

下周,Coinbase将被纳入标普500指数

Coinbase加入标普500指数紧随比特币突破10万美元大关之后。加密资产正在日益成为美国金融体系的一部分。大型机构已获得监管批准创建现货比特币交易所交易基金&#xff0c;进一步推动了加密货币的主流化进程。 加密货币行业迎来里程碑时刻&#xff0c;Coinbase即将加入标普500…...

C++(17):引用传参

目录 一、核心概念 二、代码示例&#xff1a;对比指针和引用 1. 指针传参的问题 2. 引用传参的改进 三、引用传参的优势 四、总结 一、核心概念 别名机制&#xff1a;引用是变量的别名&#xff0c;操作引用等同于操作原变量。 避免拷贝&#xff1a;直接操作原始变量&…...

文章记单词 | 第82篇(六级)

一&#xff0c;单词释义 continual /kənˈtɪnjuəl/- adj. 持续不断的&#xff1b;频繁的instinct /ˈɪnstɪŋkt/- n. 本能&#xff1b;直觉weekday /ˈwiːkdeɪ/- n. 工作日&#xff08;周一至周五&#xff09;glove /ɡlʌv/- n. 手套process /ˈprəʊses/- n. 过程&a…...

30天通过软考高项-质量论文

近年来,尤其随着5G技术的普及及使用,JZ各单位接入数据的类型及容量呈现明显上升趋势,电信诈骗等案件频发,且GA部明确各地的国产化时间要求。TJ原有的大数据应用系统已无法满足完全满足jz单位对大数据的使用的要求。TJJZ总队于23年12月正式启动算力中心项目,该项目合同额13…...

容器化-k8s-使用和部署

一、K8s 使用 1、基本概念 集群: 由 master 节点和多个 slaver 节点组成,是 K8s 的运行基础。节点: 可以是物理机或虚拟机,是 K8s 集群的工作单元,运行容器化应用。Pod: K8s 中最小的部署单元,一个 Pod 可以包含一个或多个紧密相关的容器,这些容器共享网络和存储资源。…...

C++ Kafka客户端(cppkafka)安装与问题解决指南

一、cppkafka简介 cppkafka是一个现代C的Apache Kafka客户端库&#xff0c;它是对librdkafka的高级封装&#xff0c;旨在简化使用librdkafka的过程&#xff0c;同时保持最小的性能开销。 #mermaid-svg-qDUFSYLBf8cKkvdw {font-family:"trebuchet ms",verdana,arial,…...

一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(中)

概述 各位似秃非秃小码农们都知道,在 SwiftUI 中视图是状态的函数,这意味着状态的改变会导致界面被刷新。 但是,对于有些复杂布局的 SwiftUI 视图来说,它们的界面并不能直接映射到对应的状态上去。这就会造成一个问题:状态的改变并没有及时的引起 UI 的变化。 如上图所示…...

Go语言处理HTTP下载中EOFFailed

在 Go 语言中使用 HTTP 下载文件时遇到 EOF 或 Failed 错误&#xff0c;通常是由于网络连接问题、服务器中断、未正确处理响应体或并发写入冲突等原因导致的。以下是详细的解决方案&#xff1a; 1. 检查错误类型并重试 io.EOF 错误可能表示连接被服务器关闭&#xff0c;而 Fai…...

opencloudos 安装 mosquitto

更新系统并安装依赖 sudo dnf update -y sudo dnf install -y epel-release # 若需要 EPEL 额外仓库 sudo dnf install -y gcc-c cmake openssl-devel c-ares-devel libuuid-devel libwebsockets-devel安装 Mosquitto 通过默认仓库安装&#xff08;推荐&#xff09; sudo dn…...

基于Scrapy-Redis的分布式景点数据爬取与热力图生成

1. 引言 在旅游行业和城市规划中&#xff0c;热门景点的数据分析具有重要意义。通过爬取景点数据并生成热力图&#xff0c;可以直观展示游客分布、热门区域及人流趋势&#xff0c;为商业决策、景区管理及智慧城市建设提供数据支持。 然而&#xff0c;单机爬虫在面对大规模数据…...

Java 使用 PDFBox 提取 PDF 文本并统计关键词出现次数(附Demo)

目录 前言1. 基本知识2. 在线URL2.1 英文2.2 混合 3. 实战 前言 爬虫神器&#xff0c;无代码爬取&#xff0c;就来&#xff1a;bright.cn Java基本知识&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD…...

将 Element UI 表格元素导出为 Excel 文件(处理了多级表头和固定列导出的问题)

import { saveAs } from file-saver import XLSX from xlsx /*** 将 Element UI 表格元素导出为 Excel 文件* param {HTMLElement} el - 要导出的 Element UI 表格的 DOM 元素* param {string} filename - 导出的 Excel 文件的文件名&#xff08;不包含扩展名&#xff09;*/ ex…...

Android Development Roadmap

&#x1f527; Android Development Roadmap (Practical First → Theory Later) Here’s a lean, real-world roadmap tailored to the mindset — build-first, theory-when-needed: &#x1f7e2; Stage 1: Core Setup & Workflow (Done ✅) ✅ Install Android Studio…...

【Linux网络】 HTTP cookie与session

HTTP cookie与session 引入HTTP Cookie 定义 HTTP Cookie&#xff08;也称为Web Cookie、浏览器Cookie或简称Cookie&#xff09;是服务器发送到用户浏览器并保存在浏览器上的一小块数据&#xff0c;它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。通常&…...

OrangePi Zero 3学习笔记(Android篇)11 - IR遥控器

目录 1. 查询IR信息 1.1.1 sunxi-ir-uinput 1.1.2 sunxi-ir 2. 调试键值 3. 匹配遥控器 4. Power键的特殊处理 5. 验证 ir的接口在13pin接口上&#xff0c;需要使用到扩展板。 1. 查询IR信息 在shell的界面输入命令&#xff1a; dumpsys input 分析返回信息&#xf…...