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

相关推荐
不会就选b4 小时前
C++补充部分(一)--lambda 表达式
开发语言·c++
罗西的思考10 小时前
【Agentic RL】Dressage Staleness 控制深度分析
人工智能·算法·机器学习
quaer10 小时前
弗洛伊德算法--判圈法寻找环的入口O(n) O(1)
数据结构·算法
丰色木夕11 小时前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
文丑颜不良啊11 小时前
LeetCode51~75题目解析
leetcode
高晶12 小时前
无乘法器实现LC二阶滤波器:基于移位运算的快速算法与四种精度推导
算法·设计模式·程序员
ysbfsy12 小时前
大数计算思路
算法
高晶12 小时前
主从自动分配算法:平均值乘以设备数一半的选举基准值解析
算法·设计模式·程序员
学电子她就能回来吗12 小时前
LeetCode Hot 100|普通数组专题学习笔记(零基础版)
笔记·算法·leetcode
用户老李12 小时前
反向传播计算梯度举例
算法