今天刚学完容器List,就去刷力扣的题目,正好遇到了这题关于集合的应用的题目
看完题目,我的思路其实就很简单,运用list集合,然后用暴力解法,将集合循环一遍:
- 如果i是 3 的倍数,则将 "Fizz" 插入到a[i];
- 如果i是 5 的倍数,则将 "Buzz" 插入到a[i];
- 如果是3和5的倍数,就将"FizzBuzz"插入到a[i];
- 否则,直接将i转换为字符串的形式插入到a[i]中
class Solution {
public List<String> fizzBuzz(int n) {
List<String> a = new ArrayList<>();
for (Integer i = 1; i <= n; i++) {
if (i % 3 == 0 && i % 5 == 0) {
a.add("FizzBuzz");
} else if (i % 5 == 0) {
a.add("Buzz");
} else if (i % 3 == 0) {
a.add("Fizz");
} else {
a.add(i.toString());
}
}
return a;
}
}
复杂度分析:
时间复杂度:O(n)。需要遍历从 11 到 nn 的每个整数
空间复杂度:O(1)。
其实思路就很简单粗暴,然而看了一下,好像也没有别的比较好一点的解法,这是第一次自己题解出来的,嘿嘿嘿~