leetcode2081. k 镜像数字的和-hard

1 题目:k 镜像数字的和

官方标定难度:难

一个 k 镜像数字 指的是一个在十进制和 k 进制下从前往后读和从后往前读都一样的 没有前导 0 的 正 整数。

比方说,9 是一个 2 镜像数字。9 在十进制下为 9 ,二进制下为 1001 ,两者从前往后读和从后往前读都一样。
相反地,4 不是一个 2 镜像数字。4 在二进制下为 100 ,从前往后和从后往前读不相同。
给你进制 k 和一个数字 n ,请你返回 k 镜像数字中 最小 的 n 个数 之和 。

示例 1:

输入:k = 2, n = 5
输出:25
解释:
最小的 5 个 2 镜像数字和它们的二进制表示如下:
十进制 二进制
1 1
3 11
5 101
7 111
9 1001
它们的和为 1 + 3 + 5 + 7 + 9 = 25 。

示例 2:

输入:k = 3, n = 7
输出:499
解释:
7 个最小的 3 镜像数字和它们的三进制表示如下:
十进制 三进制
1 1
2 2
4 11
8 22
121 11111
151 12121
212 21212
它们的和为 1 + 2 + 4 + 8 + 121 + 151 + 212 = 499 。

示例 3:

输入:k = 7, n = 17
输出:20379000
解释:17 个最小的 7 镜像数字分别为:
1, 2, 3, 4, 5, 6, 8, 121, 171, 242, 292, 16561, 65656, 2137312, 4602064, 6597956, 6958596

提示:

2 <= k <= 9
1 <= n <= 30

2 solution

直接枚举,但是为了避免超时,需要优化一下,可以考虑枚举十进制的一半然后通过对称生成另一半,再去验证是否为k进制回文数。

代码

class Solution {
public:long long kMirror(int k, int n) {auto f = [&](long long m) {long long a = 0, q = m;while (m) {a = a * k + m % k;m /= k;}return a == q;};long long sum = 0;queue<long long> arr;for (int l = 1;; l++) {long long y = 0, z = l / 10, w = l;for (int x = l; x; x /= 10) {y = y * 10 + x % 10;z *= 10;w *= 10;}z += y;w += y;if (z && f(z)) {while(!arr.empty() && arr.front() < z){sum += arr.front();n--;if (n == 0) return sum;arr.pop();}sum += z;n--;if (n == 0) {return sum;}}if (f(w)) {arr.push(w);}}}
};

结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络学习(七)——IP

一、IP 在计算机网络中&#xff0c;IP&#xff08;Internet Protocol&#xff0c;网际协议&#xff09;是网络层的核心协议&#xff0c;用于实现跨越不同网络的数据包传输。IP 是 TCP/IP 协议族的核心部分&#xff0c;属于网络层协议&#xff0c;也是 Internet 赖以运作的基础…

【技术追踪】ADDP:通过交替去噪扩散过程学习用于图像识别和生成的通用表示(ICLR-2024)

扩散模型交替去噪&#xff1a;助力图像识别与图像生成~ 论文&#xff1a;ADDP: Learning General Representations for Image Recognition and Generation with Alternating Denoising Diffusion Process 代码&#xff1a;https://github.com/ChangyaoTian/ADDP 0、摘要 图像识…

在Linux上安装Miniconda

在Linux上安装Anaconda或Miniconda&#xff08;轻量级版本&#xff09; 选择安装版本 Anaconda&#xff1a; 包含200预装包&#xff08;如NumPy、Pandas、TensorFlow等&#xff09;&#xff0c;适合新手或需要完整科学计算环境的用户。 安装包较大&#xff08;约500MB&#xff…

SRS流媒体服务器之RTC播放环境搭建

环境概述 srs版本 commit 44f0c36b61bc7c3a1d51cb60be0ec184c840f09d Author: winlin <winlinvip.126.com> Date: Wed Aug 2 10:34:41 2023 0800Release v4.0-r5, 4.0 release5, v4.0.271, 145574 lines. rtc.conf # WebRTC streaming config for SRS. # see full.…

清山垃圾的3个问题

与一群驴友进山&#xff0c;同步捡拾一路的垃圾&#xff1a;清山行动。 关于垃圾&#xff0c;大家提了3个问题。记录于此&#xff0c;勤于思考&#xff1a;为什么&#xff0c;如何做 问题 - 山里的垃圾有哪些&#xff1f; - 垃圾是谁丢的&#xff1f; - 他们为…

redis集合类型

练习命令使用&#xff0c;具体如下&#xff1a; 练习无序集合类型命令 sadd smembers scard srem sinter sunion sdiff sismember srandmember spop 练习有序集合类型命令 无序集合中的每个元素都是不同的&#xff0c;且没有顺序 创建/追加/删除/查看 127.0.0.1:6379>…

JAVA 包管理

一 、关键点 包声明规则&#xff1a; 每个类首行的package声明必须与文件路径完全匹配com.example.math对应路径com/example/mathorg.demo.greeting对应路径org/demo/greeting 编译参数&#xff1a; -d ./build&#xff1a;指定编译输出目录编译器会自动根据包声明创建对应…

Linux中的文件系统和软硬连接

磁盘的访问方式 CHS&#xff08;柱面&#xff0c;磁头&#xff0c;扇区&#xff09; 法&#xff08;磁盘硬件查找&#xff09;&#xff1a; 确定柱面&#xff08;C&#xff09; 磁头臂移动到对应的柱面位置。例如&#xff0c;柱面号为 5&#xff0c;则磁头移动到第 5 个磁道组…

whisper相关的开源项目 (asr)

基于 Whisper&#xff08;OpenAI 的开源语音识别模型&#xff09;的开源项目有很多&#xff0c;涵盖了不同应用场景和优化方向。以下是一些值得关注的项目&#xff1a; 1. 核心工具 & 增强版 Whisper OpenAI Whisper 由 OpenAI 开源的通用语音识别模型&#xff0c;支持多语…

深入解析Spring Boot与JUnit 5集成测试的最佳实践

深入解析Spring Boot与JUnit 5集成测试的最佳实践 引言 在现代软件开发中&#xff0c;单元测试和集成测试是确保代码质量的重要手段。Spring Boot作为当前最流行的Java Web框架之一&#xff0c;提供了丰富的测试支持。而JUnit 5作为最新的JUnit版本&#xff0c;引入了许多新特…

gitlab占用内存 优化

优化 GitLab 配置 GitLab 的配置文件可以对内存使用进行优化。 以下是一些优化配置的方法&#xff1a; 1.1 调整 Unicorn&#xff08;或 Puma&#xff09;配置 GitLab 使用 Unicorn&#xff08;旧版&#xff09;或 Puma&#xff08;新版本&#xff09;作为其 Web 服务器。可以…

视觉语言模型(Vision-Language Model, VLM)的简单介绍

目录 1. 起源与历史 2. 核心技术与原理 3. 优势 4. 应用领域 5. 技术难点与挑战 6. 学习方法与路径 7. 未来发展方向 8. 总结 1. 起源与历史 起源&#xff1a; 视觉语言模型&#xff08;VLM&#xff09;的起源可以追溯到多模态机器学习的研究。早期的计算机视觉&#…

关于PHP的详细介绍,结合其核心特点、应用场景及2025年的技术发展趋势,以清晰的结构呈现:

一、PHP的核心特点 动态脚本语言 语法灵活&#xff1a;支持过程式与面向对象编程&#xff0c;类似C/Java的语法结构&#xff0c;但动态类型特性更接近Python。即时编译&#xff1a;PHP 8.x的JIT&#xff08;Just-In-Time&#xff09;编译器显著提升性能&#xff0c;尤其在数学…

MCP、MCPHub、A2A、AG-UI概述

MCP Model Context Protocol&#xff0c;模型上下文协议&#xff0c;Anthropic于2024年开源的标准协议&#xff0c;旨在统一AI模型与数据源的交互方式&#xff0c;提升数据访问的便捷性和可靠性&#xff0c;提供标准化的工具调用、资源管理和提示词功能。 MCP的基本定义&…

[学习]浅谈C++异常处理(代码示例)

浅谈C异常处理 文章目录 浅谈C异常处理一、异常处理基础1.异常的概念与作用2.C异常处理机制&#xff08;try、catch、throw&#xff09;3.基本语法示例 二、标准异常类1.常见标准异常类&#xff1a;2.自定义异常类的实现 三、异常安全与最佳实践1. RAII&#xff08;资源获取即初…

PHP学习笔记(十)

extends 一个类可以在声明中用extends关键字继承另一个类的方法和属性。PHP不支持多重继承&#xff0c;一个类只能继承一个基类。 被继承的方法和属性可以通过同样的名字重新声明被覆盖&#xff0c;但是如果父类定义或者常量时是使用类final&#xff0c;则不可被覆盖&#xff…

rt-linux里的泛rtmutex锁的调用链整体分析

一、背景 linux系统里有非常多的锁种类&#xff0c;除了spinlock&#xff0c;mutex&#xff0c;rwlock&#xff0c;rwsem&#xff0c;还有rcu及顺序锁&#xff0c;这里面还有不少锁变种&#xff0c;比如spinlock的带bh或者irq字样的lock/unlock&#xff0c;还有nmi里可以用的顺…

LLM多平台统一调用系统-LiteLLM概述

概述 在当今快速发展的AI领域&#xff0c;大语言模型(LLM)已成为技术创新的核心驱动力。然而&#xff0c;随着市场上涌现出越来越多的LLM提供商&#xff08;如OpenAI、Anthropic、Google Gemini、AWS Bedrock等&#xff09;&#xff0c;开发者面临着一个日益复杂的问题&#x…

C#实现MCP Client 与 LLM 连接,抓取网页内容功能!

该专栏优先在飞书发布&#xff0c;欢迎收藏关注&#xff01; https://www.feishu.cn/community/article?id7507084665509904403 前面的课程&#xff0c;我们已经用C#实现了&#xff0c;自己的MCP Client。 下面我们一起来实现&#xff0c;MCP Client与LLM 对接。 一、添加依…

并发编程(6)

指令重排序 指令重排序是指在程序执行过程中&#xff0c;为了提高性能&#xff0c;编译器或处理器会对指令的执行顺序进行重新排列。 指令重排序导致可见性消失 在多线程环境下&#xff0c;每个线程都有自己的工作内存&#xff0c;线程对变量的操作是在工作内存中进行的&…