【python3】leetcode 970. Powerful Integers(easy)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/85915644

970. Powerful Integers

My SubmissionsBack to Contest

  • User Accepted:595
  • User Tried:1116
  • Total Accepted:601
  • Total Submissions:1892
  • Difficulty:Easy

Given two non-negative integers x and y, an integer is powerful if it is equal to x^i + y^j for some integers i >= 0 and j >= 0.

Return a list of all powerful integers that have value less than or equal to bound.

You may return the answer in any order.  In your answer, each value should occur at most once.

Example 1:

Input: x = 2, y = 3, bound = 10
Output: [2,3,4,5,7,9,10]
Explanation: 
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

Example 2:

Input: x = 3, y = 5, bound = 15
Output: [2,4,6,8,10,14]

Note:

  • 1 <= x <= 100
  • 1 <= y <= 100
  • 0 <= bound <= 10^6
class Solution:
    def powerfulIntegers(self, x, y, bound):
        """
        :type x: int
        :type y: int
        :type bound: int
        :rtype: List[int]
        """
        pow = []
        if bound == 0:return []
        xi = int(math.log(bound,x)) if x != 1 else bound 
        yi = int(math.log(bound,y)) if y != 1 else bound
        for i in range(xi+1):
            for j in range(yi+1):
                if (x**i + y**j)  <= bound:
                    if x**i + y**j not in pow:pow.append(x**i + y**j)
                    
        return pow

猜你喜欢

转载自blog.csdn.net/maotianyi941005/article/details/85915644