Given an integer n, return a string array answer (1-indexed) where: answer[i] == "FizzBuzz" if i is divisible by 3 and 5, answer[i] == "Fizz" if i is divisible by 3, answer[i] == "Buzz" if i is divisible by 5, otherwise answer[i] == i as a string.
Output: ["1","2","Fizz"]
Output: ["1","2","Fizz","4","Buzz"]
Output: ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
Iterate from 1 to n. For each number, build the result string by checking divisibility. Check divisibility by 15 (FizzBuzz) first, or use a StringBuilder approach to concatenate "Fizz" and "Buzz" independently.
- For each
ifrom 1 to n, build a string using StringBuilder. - If
i % 3 == 0, append "Fizz". - If
i % 5 == 0, append "Buzz". - If StringBuilder is still empty, use
String.valueOf(i).
Complexity Analysis:
Time complexity: O(n) — one pass through numbers 1 to n.
Space complexity: O(n) — for the output list.