小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
很多人在将数值类型转换为字符串的时候为了贪图方便,都是直接采用"" + num的方式来实现的,今天我就给你看下这种方式与String.valueOf()两者在执行用时上有多大区别,想直接看结果的XDJMM拉到最下方即可。
题目
给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
answer[i] == "FizzBuzz"如果i同时是3和5的倍数。answer[i] == "Fizz"如果i是3的倍数。answer[i] == "Buzz"如果i是5的倍数。answer[i] == i如果上述条件全不满足。
示例
输入: n = 3
输出: ["1","2","Fizz"]
输入: n = 5
输出: ["1","2","Fizz","4","Buzz"]
输入:n = 15
输出:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
提示
- 1 <= n <=
解题思路
题目要求在[1,n]的范围中,将符合条件的数值转换成字符串。这里我们可以使用 for循环遍历一遍,对每一个元素进行取余判断是否符合条件,把结果添加到集合中返回。
代码实现
class Solution {
public List<String> fizzBuzz(int n) {
List<String> ans = new ArrayList<>();
for(int i = 1; i <= n; ++i){
// 这里记得一定要将两个同时符合的条件放在前面
if(i % 3 == 0 && i % 5 == 0){
ans.add("FizzBuzz");
}else if(i % 3 == 0){
ans.add("Fizz");
}else if(i % 5 == 0){
ans.add("Buzz");
}else{
ans.add(String.valueOf(i));
}
}
return ans;
}
}
执行用时对比
复杂度分析
- 时间复杂度:
- 空间复杂度:
最后
文章有写的不好的地方,请大佬们不吝赐教,错误是最能让人成长的,愿我与大佬间的距离逐渐缩短!
如果觉得文章对你有帮助,请 点赞、收藏、关注、评论 一键四连支持,你的支持就是我创作最大的动力!!!