美文网首页
970. 强整数(Python)

970. 强整数(Python)

作者: 玖月晴 | 来源:发表于2021-04-26 11:29 被阅读0次

难度:★★★☆☆
类型:代数
方法:遍历

题目

力扣链接请移步本题传送门
更多力扣中等题的解决方案请移步力扣中等题目录

给定两个正整数 x 和 y,如果某一整数等于 x^i + y^j,其中整数 i >= 0 且 j >= 0,那么我们认为该整数是一个强整数。

返回值小于或等于 bound 的所有强整数组成的列表。

你可以按任何顺序返回答案。在你的回答中,每个值最多出现一次。

示例 1:

输入:x = 2, y = 3, bound = 10
输出:[2,3,4,5,7,9,10]
解释:
2 = 2^0 + 3^0
3 = 2^1 + 3^0
4 = 2^0 + 3^1
5 = 2^1 + 3^1
7 = 2^2 + 3^1
9 = 2^3 + 3^0
10 = 2^0 + 3^2

示例 2:

输入:x = 3, y = 5, bound = 15
输出:[2,4,6,8,10,14]

提示:

1 <= x <= 100
1 <= y <= 100
0 <= bound <= 10^6

解答

这道题实际上,要求我们在i∈N+,j∈N+的二维离散搜索空间中找到所有满足条件xi+yj<=bound的点,可以预见,这些点一定分布在平面直角坐标系的靠近原点的近似三角形的区域中。

官方题解给出了投机取巧办法,我们用while循环来控制循环,遍历所有可能的ij组合点,将每个满足条件的情况添加到结果中。

这里需要注意的是,对于x或者y是1的情况,不论指数是多少,幂一定是1,因此遇到这种情况应该及时跳出循环,避免死循环。

class Solution:
    def powerfulIntegers(self, x, y, bound):
        res = set()
        i = 0
        while x ** i <= bound:
            j = 0
            while x ** i + y ** j <= bound:
                res.add(x ** i + y ** j)
                j += 1
                if y == 1:
                    break
            i += 1
            if x == 1:
                break

        return list(res)

如有疑问或建议,欢迎评论区留言~

有关更多力扣中等题的python解决方案,请移步力扣中等题解析

相关文章

  • 970. 强整数(Python)

    更多精彩内容,请关注【力扣简单题】。 题目 难度:★★☆☆☆类型:数学,排列组合 给定两个正整数 x 和 y,如果...

  • 970. 强整数(Python)

    难度:★★★☆☆类型:代数方法:遍历 题目 力扣链接请移步本题传送门[https://leetcode-cn.co...

  • Python基础知识总结

    Python 数据类型 一、整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的...

  • Python 入门篇

    一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...

  • (二)Python变量与数据类型

    1、Python中数据类型 1、整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整...

  • 3. Python3源码—整数对象

    3.1. 整数对象 整数对象是“变长对象”。 3.1.1. Python中的创建 Python中整数对象最重要的创...

  • Python第二天,数字与列表

    Python中的数字: 1.整数:在python中可对整数执行+、-、*、/运算 Python使用两个乘号表示乘方...

  • 2020-09-19

    一、python数据类型 1、int :整数。 python3唯一的整数类型,python里没有long之类的类型...

  • Python的入门

    一、python中的数据类型 1.1 整数 Python可以处理任意大小的整数,包括负整数,例如:1,100,-8...

  • Python源码学习笔记 2 整数对象

    Python中的整数类型是不可变对象,为了提高python运行效率,内部实现了小整数对象池(数组实现),和通用整数...

网友评论

      本文标题:970. 强整数(Python)

      本文链接:https://www.haomeiwen.com/subject/cdkpcltx.html