zoukankan      html  css  js  c++  java
  • 118th LeetCode Weekly Contest 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

    emmm,暴力也能过哒

    int poww(int a, int b) {
        int ans = 1, base = a;
        while (b != 0) {
            if (b & 1 != 0)
                ans *= base;
                base *= base;
                b >>= 1;
        }
        return ans;
    }
    
    class Solution {
    public:
        vector<int> powerfulIntegers(int x, int y, int bound) {
            int sum = 0;
            int r,l;
            vector<int>Ve;
            map<int,int>Mp;
            
            if(x == 1){
                r = bound;
            }
            else if(x!=1){
                r = log(bound)/log(x)+1;
            }
            if(y == 1){
                l =bound;
            }else if(y!=1){
                l = log(bound)/log(y)+1;
            }
            for(int i=0;i<=r;i++){
                for(int j=0;j<=l;j++){
                        sum = poww(x,i) + poww(y,j);
                        if(sum>bound) continue;
                        Mp[sum]++;
                      
                        if(Mp[sum]<=1){
                            
                            Ve.push_back(sum);
                        }
                      
                }
            }
            
            return Ve;
        }
    };
  • 相关阅读:
    Repeater中使用Button
    C#, JS, HTML 转义字符
    简化: ASP.NET 事件触发顺序
    必须写闭合标签
    JS通用窗口拖动函数
    SQL修修补补语句
    asp.net: RDLC 报表
    Ascx中引用(调用)JS文件,在用户控件中引用(调用)JS文件
    <a>
    JS, CSS 引用样式
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/10228769.html
Copyright © 2011-2022 走看看