【LeetCode】No.412. Fizz Buzz -- Java Version

题目链接: https://leetcode.com/problems/fizz-buzz/

1. 题目介绍(Fizz Buzz)

Given an integer n, return a string array answer (1-indexed) where:

【Translate】:给定一个整数 n,返回一个字符串数组的答案(下标从1开始),其中:

  • answer[i] == “FizzBuzz” if i is divisible by 3 and 5.(如果i能被3和5整除,则answer[i] == “FizzBuzz”)
  • answer[i] == “Fizz” if i is divisible by 3.(如果i能被3整除,则answer[i] == “Fizz”)
  • answer[i] == “Buzz” if i is divisible by 5.(如果i能被5整除,则answer[i] == “Buzz”)
  • answer[i] == i (as a string) if none of the above conditions are true.(如果以上都没有,则answer[i] == i )

测试用例:
【LeetCode】No.412. Fizz Buzz -- Java Version_第1张图片
约束:
Constraints

2. 题解

2.1 if…else if…else

  根据题目描述,我像大家应该都能很轻松的想到这不就是一个if...else if...else判断嘛,我们先判断一下i是否能被3和5整除,然后依次是否能被3整除,是否能被5整除,都不满足,else让其等于i,结束!(需要注意的一点就是i是从1开始的)

class Solution {
    public List<String> fizzBuzz(int n) {
        List<String> answer = new ArrayList<>();    
        for(int i = 1; i <= n; i++){
            if(i%3 == 0 && i%5 == 0){
                answer.add("FizzBuzz");
            }else if (i%3 == 0){
                answer.add("Fizz");
            }else if (i%5 == 0){
                answer.add("Buzz");
            }else{
                answer.add(String.valueOf(i));
            }
        }
        return answer;
    }
}

【LeetCode】No.412. Fizz Buzz -- Java Version_第2张图片

2.2 if…if…if

  该方法是讨论区Most Vote比较靠前的题解,它并没有使用if…else if的形式,而是将其都设成了if形式,优点是不需要再单独判断是否可以被3和5同时整除,缺点就是每次所有的都得判断。但最后,该方法的最好结果和上一解法的最好结果基本持平,当然在这种简单题中基本上也没什么可深挖的空间,没必要花费太多的时间来思考改进和优化。

    public List<String> fizzBuzz(int n) {
        List<String> answer = new ArrayList<>();
        for (int i= 1; i <= n; i++) {
            String current = "";
            if (i % 3 == 0) {
                current = "Fizz";
            }
            if (i % 5 == 0) {
                current += "Buzz";
            }
            if (current.length() == 0) {
                current = String.valueOf(i);
            }
            answer.add(current);
        }
        return answer;
    }

【LeetCode】No.412. Fizz Buzz -- Java Version_第3张图片

3. 可参考

[1] Java集合-List

你可能感兴趣的:(leetcode,算法,Easy,Java)