力扣练习之Fizz Buzz

我爱海鲸 2022-10-10 18:31:20 初级算法

简介初级算法、数学

原题出处: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,如果都不满足就讲当前下标值设计即可。

你好:我的2025