leetcode 412fizbuss

其实就是对某一个数,若其为一个因数的倍数,则输出特定的字符串。土方法是设置很多判断条件,简单的情况倒还可以,但是要是因数多了点,就不适用。比较好的方法是将所有需要判断的因数与对应的字符串放在一个map里面,然后每个数都遍历一下这个map中的键值,这样就能减少判断,并且大大减少是多个因数倍数时输出的复杂度,贴代码

class Solution {
public:
    vector<string> fizzBuzz(int n) 
    {
        vector<string> yes;
        map<int,string> good = {{3,"Fizz"},{5,"Buzz"}};
        for(int i = 1 ; i <=n ;i++)
        {
            string temp = "";
            for(auto key:good)
            {
                if(i%key.first == 0)
                temp+=key.second;
            }
            if(temp == "")
            temp+=to_string(i);
            yes.push_back(temp);
        }
        return yes;
    }
};

 

posted @ 2021-03-26 20:00  zhaohhhh  阅读(40)  评论(0)    收藏  举报