• LC 970. Powerful Integers


    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

    Runtime: 9 ms, faster than 52.02% of Java online submissions for Powerful Integers.

    class Solution {
      public static void init(List<Integer> A, int x, int bound){
        if(x == 1){
          A.add(1);
          return;
        }
        for(int i=0; ; i++){
          int tmp = (int) Math.pow(x, i);
          if(tmp < bound){
            A.add(tmp);
          }else break;
        }
        return ;
      }
      public List<Integer> powerfulIntegers(int x, int y, int bound) {
        List<Integer> arrx = new ArrayList<>();
        List<Integer> arry = new ArrayList<>();
        init(arrx, x, bound);
        init(arry, y, bound);
        Set<Integer> s = new HashSet<>();
        for(int i=0; i<arrx.size(); i++){
          for(int j=0; j<arry.size(); j++){
            if(arrx.get(i) + arry.get(j) <= bound) s.add(arrx.get(i) + arry.get(j));
          }
        }
        List<Integer> ret = new ArrayList<>();
        Iterator<Integer> iter = s.iterator();
        while(iter.hasNext()){
          ret.add(iter.next());
        }
        return ret;
      }
    }
  • 相关阅读:
    iOS iPad开发之Modal
    iOS SVN终端指令
    iOS iPad开发之UIPopoverController的使用
    iOS Xcode6和Xcode5的区别?
    算法 查找算法--二分查找
    算法 排序算法--快速排序
    算法 排序算法--选择排序
    XCode签名证书死活不能选
    IOS7 适配时导航栏变黑
    Xcode Provisioning 路径
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10256898.html
Copyright © 2020-2023  润新知