算法:Fizz Buzz解题思路

现在有一个整数,要求返回一个数组,数组内容如下:

answeri == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。

answeri == "Fizz" 如果 i 是 3 的倍数。

answeri == "Buzz" 如果 i 是 5 的倍数。

answeri == i

举例:

cpp 复制代码
输入:
n = 3
输出:
["1","2","Fizz"]

解法一:

cpp 复制代码
class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> answer(n);
        for(int i=1;i<=n;i++)
        {
            if(i%3==0&&i%5==0)
            {
                answer[i-1]="FizzBuzz";
            }
            else if(i%3==0)
            {
                answer[i-1]="Fizz";
            }
            else if(i%5==0)
            {
                answer[i-1]="Buzz";
            }
            else 
            {
                answer[i-1]=to_string(i);
            }
        }
        return answer;
        
    }
};

解法二:不用担心下标

cpp 复制代码
class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> answer; // 依然为空,但我不直接取下标
        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                answer.push_back("FizzBuzz"); // 从尾部追加,绝对安全
            } else if (i % 3 == 0) {
                answer.push_back("Fizz");
            } else if (i % 5 == 0) {
                answer.push_back("Buzz");
            } else {
                answer.push_back(to_string(i));
            }
        }
        return answer;
    }
};

注意点:

空数组不能用 下标 赋值 ------ 必须 vector<string> answer(n); 或者用 push_back。

FizzBuzz 必须从 1 数到 n,不是从 0。

字符串数组赋值右边必须是字符串,整数要用 to_string() 转换。

相关推荐
秋天的怀念_David23 分钟前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
敲上瘾24 分钟前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
旖旎夜光2 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
Rain的Java大神之路2 小时前
LeetCode 37 解数独面试攻略:回溯 + 位掩码 + MRV,从暴力到毫秒级求解
java·后端·leetcode
NEFU_Jyj2 小时前
贝尔数(组合数学)
算法
希和20273 小时前
C语言程序设计题|有序数组插入数字冒泡排序
c语言·数据结构·算法
旖旎夜光3 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
Pniubi3 小时前
力扣73 矩阵置零
算法·leetcode·矩阵
apcipot_rain13 小时前
C++转Java日记(03)
java·开发语言·c++
布莱克60513 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map