Leetcode970. 强整数

news2024/11/16 11:59:27

Every day a Leetcode

题目来源:970. 强整数

解法1:枚举

枚举 i 和 j 所有的可能性,然后计算 pow(x, i) + pow(y, j),判断是否 <= bound。若满足,则放入一个哈希集合,最后将集合转成数组返回。

第一种枚举方法:

int num1 = 1;
for (int i = 0; i <= 20; i++)
{
	int num2 = 1;
	for (int j = 0; j <= 20; j++)
	{
		int num = num1 + num2;
		if (num <= bound)
			nums.insert(num);
		else
			break;
		num2 *= y;
	}
	if (num1 >= bound)
		break;
	num1 *= x;
}

第二种枚举方法:

for (int i = 1; i < bound; i *= x)
{
	for (int j = 1; i + j <= bound; j *= y)
	{
		nums.insert(i + j);
		if (y == 1)
			break;
	}
	if (x == 1)
		break;
}

代码:

/*
 * @lc app=leetcode.cn id=970 lang=cpp
 *
 * [970] 强整数
 */

// @lc code=start
class Solution
{
public:
    vector<int> powerfulIntegers(int x, int y, int bound)
    {
        unordered_set<int> nums;
        // for (int i = 1; i < bound; i *= x)
        // {
        //     for (int j = 1; i + j <= bound; j *= y)
        //     {
        //         nums.insert(i + j);
        //         if (y == 1)
        //             break;
        //     }
        //     if (x == 1)
        //         break;
        // }
        int num1 = 1;
        for (int i = 0; i <= 20; i++)
        {
            int num2 = 1;
            for (int j = 0; j <= 20; j++)
            {
                int num = num1 + num2;
                if (num <= bound)
                    nums.insert(num);
                else
                    break;
                num2 *= y;
            }
            if (num1 >= bound)
                break;
            num1 *= x;
        }
        return vector<int>(nums.begin(), nums.end());
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(log2(bound)),双层循环的时间复杂度是 O(log2(bound))。

空间复杂度:O(log2(bound)),是哈希集合的空间复杂度。

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

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

相关文章

​轻量应用服务器有什么优势?如何评价亚马逊云科技轻量应用服务器?

什么是轻量应用服务器&#xff1f; 随着如今各行各业对云计算的需求越来越多&#xff0c;云服务器也被越来越多的企业所广泛采用。其中&#xff0c;轻量应用服务器是一种简单、高效、可靠的云计算服务&#xff0c;能够为开发人员、企业和个人提供轻量级的虚拟专用服务器&#…

关于c++unique后会打乱顺序

这为什么加上注释这三行输出就会多个4 5 吗 还是a已经发生了变化? 疑问? 解决: unique要求容器有序&#xff0c;而且执行完以后会把重复的放在后面 因为unique后可能无序所以要排序一下,代码如下 。 源代码 #include <iostream> #include <algorithm> #…

Jina AI 推出全球首款开源 8K 语义向量模型,比肩 OpenAI

作为多模态人工智能技术领域的翘楚&#xff0c;Jina AI 的愿景是铺平通往多模态 AI 的未来之路。今天&#xff0c;Jina AI 在向着该愿景前进的路上&#xff0c;达成了一个重要里程碑。我们正式发布了自主研发的第二代文本向量模型&#xff1a;jina-embeddings-v2&#xff0c;是…

记录一道0xGame 2023 CTF Web ez_unserialize的反序列化漏洞题目收获

ez_unserialize 考点&#xff1a; 1. PHP 的引用来绕过 __wakeup 2.命令行中执行php -r phpinfo();&#xff0c;即可获得完整的phpinfo输出 3.PHP 反序列化 POP 链的构造 源码和代码审计&#xff1a; <?phpshow_source(__FILE__);class Cache {public $key;public $value…

高等数学教材重难点题型总结(八)向量代数与空间解析几何

同期更新配套的课后题&#xff0c;这部分的题普遍容易&#xff0c;仅对计算能力有一定要求&#xff0c;理解层面没有什么难度。中学立体几何和解析几何掌握不错的同志&#xff0c;这部分只要稍加记忆是没有什么难度的。

Python语言: 切片的使用

切片的本质&#xff1a;通过切片来截取指定的元素&#xff0c;形成一个新的容器。 切片的具体阐释&#xff1a; 此切片非切片面包的切片&#xff0c;而是python语言中的切片。切片&#xff1a;顾名思义&#xff0c;就是把整块的东西分割开来。python语言中的切片是把一个容器截…

论文阅读 - DCGNN: Dual-Channel Graph Neural Network for Social Bot Detection

论文链接&#xff1a; https://dl.acm.org/doi/pdf/10.1145/3583780.3615237 摘要 由于社交机器人检测对信息传播的深远影响&#xff0c;其重要性已得到越来越多的认识。现有的方法可以分为特征工程和基于深度学习的方法&#xff0c;它们主要关注静态特征&#xff0c;例如帖子…

gitee上传项目

目录 首先在gitee新建一个仓库 接下来创建好项目&#xff0c;先找到生成公钥SSH的目录 接下来是生成公钥SSH 仓库创建好后&#xff0c;接着开始链接项目 首先在gitee新建一个仓库 接下来创建好项目&#xff0c;先找到生成公钥SSH的目录 接下来是找目录&#xff1a;C盘&a…

学习鸟哥Linux shell 时遇到的unexpected operator错误

最近在学习鸟哥Linux&#xff0c;其中一个章节讲解了Linux shell script使用语法&#xff0c;运行总是错误&#xff0c;源码如下&#xff1a; #!/bin/bashread -p "Please input &#xff08;Y/N&#xff09;: " yn[ "${yn}" "Y" -o "${y…

这么理解矩阵乘法,让你吊打面试官

大家好啊&#xff0c;我是董董灿。 很多与深度学习算法相关的面试&#xff0c;面试官可能都会问一个问题&#xff0c;那就是你是如何理解矩阵乘算法的。 更有甚者&#xff0c;会让你当场手写矩阵乘算法&#xff0c;然后问细节&#xff0c;问如何优化&#xff0c;面试现场&…

用大白话聊聊SpringBoot的自动配置原理(面试题详解)

首先&#xff0c;SpringBoot的自动配置不等于自动装配&#xff01; 自动配置是Auto-Configuration&#xff0c;针对的是SpringBoot中的配置类&#xff0c; 而自动装配是Autowire&#xff0c;针对的是Spring中的依赖注入。 进入主题&#xff1a; 自动配置简单来说就是自动去把…

告诉你一个真实的短视频自媒体收入

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 10个月前我分享了《这一年半我在短视频的收入》都是真实的&#xff0c;最近我看到有人在分享卢松松做短视频的收入&#xff0c;玩视频又被赋予了很多内容&#xff0c;我这说明下也是一些小感悟分享…

故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断 模型描述 卷积神经网络(convolutional neural network)是具有局部连接、权重共享等特性的深层前馈神经网络,最早主要是用来处理图像信息。 相比于全…

电路的电线的拼接

不积跬步无以至千里&#xff0c;今天小编也是复习今天学习的内容&#xff0c;废话不多说&#xff0c;看博客吧&#xff01;&#xff01;&#xff01; 目录 准备条件 操作 成品 准备条件 操作 将定制的套管插入导线当中&#xff0c;24V或者0V是尖端的端子&#xff0c;后面根…

【排序算法】 归并排序详解!深入理解!思想+实现!

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 算法—排序篇 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言&#x1f324;️归并排序的思想☁️基本思想☁️归并的思想实现☁️分治法 &#x1f3…

H5游戏源码分享-跳得更高

H5游戏源码分享-跳得更高 控制跳动踩到云朵上 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><meta http-equiv"Content-Type" content"text/html;"&g…

利用ChatGPT进行股票走势分析

文章目录 1. 股票分析2. 技巧分析3. 分析技巧21. 股票分析 这张图片显示了一个股票交易软件的界面。以下是根据图片内容的一些解读: 股票代码: 图片右上角显示的代码是“600517”,这是股票的代码。 图形解读: 该图展示了股票的日K线图。其中,蜡烛图表示每日的开盘、收盘、最…

Rest风格基本语法与实战

1&#xff0c;前置知识点 1.1 GetMapping&#xff0c;PostMapping&#xff0c;PutMapping&#xff0c;DeleteMapping 平时我们都是使用RequestMapping&#xff0c;然后通过它的method属性来指定请求的方式&#xff0c;这样是有些麻烦的&#xff0c;然后这四个标签就是来简化这…

Day 16 python学习笔记

静态方法 静态方法&#xff0c;只需要在方法前添加 staticmethod&#xff0c; 方法就可以不写形参self&#xff0c;可以通过实例对象.方法名调用&#xff0c;也可以通过类名.方法名调用 例&#xff1a; class Test:staticmethoddef test1():print("你好")def nums(se…

异步 AIMD 收敛

给出的一直都是同步 AIMD 收敛&#xff0c;所以简单&#xff0c;但不至于 bbr 单流情形退化成简陋。 给出一个异步 AIMD 收敛过程是必要的&#xff0c;可见&#xff0c;它同样是简洁优美的&#xff1a; 虽然我没有标注太多&#xff0c;它始终没有成为一团乱麻。 和同步 AIM…