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;
        }
    };
  • 相关阅读:
    WP8.1通过StreamSocket连接C++服务器
    WP10通过StreamSocket连接C++服务器
    二维背包(两个限制条件)
    dp(多重背包)
    dp(完全背包)
    dfs(迷宫)
    bfs迷宫
    蚁人cp数
    二分(老死不相往来)
    前缀和(狼和野牛)
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/10228769.html
Copyright © 2011-2022 走看看