zoukankan      html  css  js  c++  java
  • 970. Powerful Integers

    Given three integers xy, and bound, return a list of all the powerful integers that have a value less than or equal to 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 = 10
    Output: [2,3,4,5,7,9,10]
    Explanation:
    2 = 20 + 30
    3 = 21 + 30
    4 = 20 + 31
    5 = 21 + 31
    7 = 22 + 31
    9 = 23 + 30
    10 = 20 + 32
    

    Example 2:

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

    Constraints:

    • 1 <= x, y <= 100
    • 0 <= bound <= 106
    class Solution {
        public List<Integer> powerfulIntegers(int x, int y, int bound) {
            Set<Integer> set = new HashSet();
            int a = 1;
            while(a < bound) {
                int b = 1;
                while(b < bound) {
                    if(a + b <= bound) set.add(a + b);
                    if(y == 1) break;
                    b *= y;
                }
                if(x == 1) break;
                a *= x;
            }
            return new ArrayList(set);
        }
    }

    a = a*x,b = b*y。a、b都从1开始。

    外循环是a<bound, 内循环是b < bound, 先算内循环的,如果a+b《= bound就添加到set中,但是如果y是1就break,否则剩下的全是11111,如果不是1就更新b。

    外循环也一样,如果x是1就直接break,否则就更新a = a*x。

    最后返回。

  • 相关阅读:
    pytest+allure详情版
    【Django】django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required
    Docker-Portainer
    滑动解锁和截图
    调用JavaScript(浏览器滚动条)
    WebDriver操作cookie
    下载文件
    多表单切换
    利用parameterized模块进行unittest参数化
    关于软件测试必备的技能
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14723722.html
Copyright © 2011-2022 走看看