码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】970. Powerful Integers

时间:2019-01-07 17:33:22      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:span   lan   value   注意   bsp   you   2-2   等于   ESS   

题目如下:

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

解题思路:注意,题目中的^不是异或而是幂。方法很简单,如果x/y等于1,那么幂值只会是1;如果x/y 大于1,由于 bound <= 10^6,幂的最大值是20(pow(2,20) > 10^6)。

代码如下:

class Solution(object):
    def powerfulIntegers(self, x, y, bound):
        """
        :type x: int
        :type y: int
        :type bound: int
        :rtype: List[int]
        """
        res = set()
        x_max,y_max = 20 if x > 1 else 1,20 if y > 1 else 1
        for i in range(x_max):
            for j in range(y_max):
                v = pow(x,i) + pow(y,j)
                if v <= bound:
                    res.add(v)
        return list(res)

 

【leetcode】970. Powerful Integers

标签:span   lan   value   注意   bsp   you   2-2   等于   ESS   

原文地址:https://www.cnblogs.com/seyjs/p/10233942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!