算法: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() 转换。

相关推荐
KuaCpp1 小时前
C++进程(下)
c++
PhotonixBay1 小时前
共聚焦成像核心原理:针孔、PSF与三维形貌测量技术
人工智能·测试工具·算法
来一碗刘肉面2 小时前
C++中的引用语法
c++·算法
杜子不疼.2 小时前
【Qt初识】工程起步:项目创建、代码解读与对象树
数据库·c++·qt
Black蜡笔小新2 小时前
自动化AI算法训练服务器DLTM零代码私有化赋能智慧农业用AI智能视觉守护万亩良田
人工智能·算法·自动化
Tisfy3 小时前
LeetCode 1288.删除被覆盖区间:排序(非二重循环暴力)
算法·leetcode·题解·排序
Σίσυφος19003 小时前
激光三角 光平面标定之后计算深度图
算法·平面
阿文的代码库3 小时前
经典算法题剖析:按奇偶排序数组
数据结构·算法
AI小码3 小时前
WAIC 2026前瞻:AI产业进入拼落地的下半场
人工智能·算法·ai·程序员·大模型·编程·智能体