加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Swift Weekly Contest 118]LeetCode970. 强整数 | Powerful Int

发布时间:2020-12-14 05:07:11 所属栏目:百科 来源:网络整理
导读: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 retur

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,6,8,10,14]

Note:

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

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

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

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

示例 1:

输入:x = 2,y = 3,bound = 10
输出:[2,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,14]

提示:

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

?8ms

 1 class Solution {
 2     func powerfulIntegers(_ x: Int,_ y: Int,_ bound: Int) -> [Int] {
 3         var xs:[Int] = [1]
 4         var ys:[Int] = [1]
 5         
 6         if x > 1
 7         {
 8             var p:Int = x
 9             while(p <= bound)
10             {
11                 xs.append(p)
12                 p *= x
13             }
14         }
15         
16         if y > 1
17         {
18             var p:Int = y
19             while(p <= bound)
20             {
21                 ys.append(p)
22                 p *= y
23             }
24         }
25         
26         var s:Set<Int> = Set<Int>()
27         for xx in xs
28         {
29             for yy in ys
30             {
31                 if xx + yy <= bound
32                 {
33                     s.insert(xx + yy)
34                 }
35             }
36         }
37         return Array(s)
38     }
39 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读