题目
Given three integers x, y, and bound, return a list of all the bound.
An integer is powerful if it can be represented as xi + yj for some integers i >= 0 and j >= 0.
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 = 10Output: [2,3,4,5,7,9,10]Explanation:2 = 20 + 303 = 21 + 304 = 20 + 315 = 21 + 317 = 22 + 319 = 23 + 3010 = 20 + 32
Example 2:
Input: x = 3, y = 5, bound = 15Output: [2,4,6,8,10,14]
Constraints:
1 <= x, y <= 1000 <= bound <= 10^6
题意
求所有小于等于bound的x幂与y幂之和。
思路
直接二重循环,用HashSet去重。
代码实现
Java
class Solution {public List<Integer> powerfulIntegers(int x, int y, int bound) {Set<Integer> hash = new HashSet<>();for (int a = 1; a < bound; a *= x) {for (int b = 1; a + b <= bound; b *= y) {hash.add(a + b);if (y == 1) break;}if (x == 1) break;}return new ArrayList<>(hash);}}
