原题出处:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xngt85/
解法一:
class Solution {
public List<String> fizzBuzz(int n) {
List<String> result = new ArrayList<>();
// 初始化数据
for (int i = 1 ; i <= n; i++) {
result.add(i+"");
}
// 找出3的倍数,并将对应的值设置为Fizz
for (int i = 2; i < n; i += 3) {
result.set(i,"Fizz");
}
// 找出5的倍数,并将对应的值设置为Buzz
for (int i = 4; i < n; i += 5) {
result.set(i,"Buzz");
}
// 找出15的倍数,并将对应的值设置为FizzBuzz
for (int i = 14; i < n; i += 15) {
result.set(i,"FizzBuzz");
}
return result;
}
}
思路:这个题就是需要找出3,5或者15的倍数,首先我们定义集合,初始化集合的值(注意集合的下标是从0开始的,),然后再找出3的倍数,找倍数的时候我们直接遍历集合即可,每一个遍历加3即可找出所有3的倍数,5倍数的也是一样的。
解法二:
class Solution {
public List<String> fizzBuzz(int n) {
List<String> result = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i % 15 == 0) {
result.add("FizzBuzz");
continue;
}
if (i % 3 == 0) {
result.add("Fizz");
continue;
}
if (i % 5 == 0) {
result.add("Buzz");
continue;
}
result.add(i+"");
}
return result;
}
}
思路:直接遍历判断是不是15、3和5的倍数,如果是,设置相关的值并continue,如果都不满足就讲当前下标值设计即可。