zoukankan      html  css  js  c++  java
  • 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;
      }
    }
  • 相关阅读:
    python-局部变量与全局变量作用域
    python-函数(上):函数返回值、函数调用、前向引用
    python-文件读写
    python-输入和输出
    python-模块介绍及os模块的方法
    python-continue和break的区别
    python-for循环
    python-while循环
    python-三元运算和if...else
    python-数据类型(下) :byte、列表、元组、集合
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10256898.html
Copyright © 2011-2022 走看看