弱智题。就是在做if语句的判断,最后输出的是一个数组。 3的倍数输出Fizz,5的倍数输出Buzz,同时为3和5的倍数输出FizzBuzz。例子,

Example:

n = 15,

Return:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

时间O(n)

空间O(n) - 因为输出的是string array

Java实现

 1 class Solution {
 2     public List<String> fizzBuzz(int n) {
 3         List<String> res = new ArrayList<>();
 4         if (n == 0)
 5             return res;
 6         for (int i = 1; i <= n; i++) {
 7             if (i % 3 == 0 && i % 5 == 0) {
 8                 res.add("FizzBuzz");
 9             } else if (i % 3 == 0) {
10                 res.add("Fizz");
11             } else if (i % 5 == 0) {
12                 res.add("Buzz");
13             } else {
14                 res.add(String.valueOf(i));
15             }
16         }
17         return res;
18     }
19 }

 

JavaScript实现

 1 /**
 2  * @param {number} n
 3  * @return {string[]}
 4  */
 5 var fizzBuzz = function(n) {
 6     let res = [];
 7     // corner case
 8     if (n == 0) return res;
 9 
10     // normal case
11     for (let i = 1; i <= n; i++) {
12         if (i % 3 == 0 && i % 5 == 0) {
13             res.push('FizzBuzz');
14         } else if (i % 3 == 0) {
15             res.push('Fizz');
16         } else if (i % 5 == 0) {
17             res.push('Buzz');
18         } else {
19             res.push(i.toString());
20         }
21     }
22     return res;
23 };