0412. Fizz Buzz【简单】
1. 📝 题目描述
给你一个整数 n,返回一个字符串数组 answer(下标从 1 开始),其中:
answer[i] == "FizzBuzz"如果i同时是3和5的倍数。answer[i] == "Fizz"如果i是3的倍数。answer[i] == "Buzz"如果i是5的倍数。answer[i] == i(以字符串形式)如果上述条件全不满足。
示例 1:
txt
输入:n = 3
输出:["1","2","Fizz"]1
2
2
示例 2:
txt
输入:n = 5
输出:["1","2","Fizz","4","Buzz"]1
2
2
示例 3:
txt
输入:n = 15
输出:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]1
2
2
提示:
1 <= n <= 10^4
2. 🎯 s.1 - 暴力解法
js
/**
* @param {number} n
* @return {string[]}
*/
var fizzBuzz = function (n) {
const result = []
for (let i = 1; i <= n; i++) {
if (i % 15 === 0) {
// 同时是 3 和 5 的倍数(即 15 的倍数)
result.push('FizzBuzz')
} else if (i % 3 === 0) {
// 是 3 的倍数
result.push('Fizz')
} else if (i % 5 === 0) {
// 是 5 的倍数
result.push('Buzz')
} else {
// 其他情况,转换为字符串
result.push(i.toString())
}
}
return result
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
js
/**
* @param {number} n
* @return {string[]}
*/
var fizzBuzz = function (n) {
const result = []
for (let i = 1; i <= n; i++) {
let str = ''
if (i % 3 === 0) str += 'Fizz'
if (i % 5 === 0) str += 'Buzz'
result.push(str || i.toString()) // 如果 str 为空,说明都不整除
}
return result
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 时间复杂度:
,需要遍历从 1 到 n 的每个数字 - 空间复杂度:
,不考虑返回数组的情况下,只使用了常数级别的额外空间 - 算法思路:
- 根据题目描述逐步翻译即可