
Sponsored
Sponsored
This approach iterates through numbers from 1 to n and applies conditional logic using modulus operations to determine if a number should be represented as "Fizz", "Buzz", or "FizzBuzz". If none of these conditions are met, the number itself is returned as a string.
Time Complexity: O(n) as we iterate through each number from 1 to n once.
Space Complexity: O(n) for the output array.
1import java.util.ArrayList;
2import java.util.List;
3
4public class Solution {
5 public List<String> fizzBuzz(int n) {
6 List<String> result = new ArrayList<>();
7 for (int i = 1; i <= n; i++) {
8 if (i % 3 == 0 && i % 5 == 0) {
9 result.add("FizzBuzz");
10 } else if (i % 3 == 0) {
11 result.add("Fizz");
12 } else if (i % 5 == 0) {
13 result.add("Buzz");
14 } else {
15 result.add(Integer.toString(i));
16 }
17 }
18 return result;
19 }
20}
21This Java solution uses an ArrayList to store the result. The List is built by iterating over each number and applying the appropriate checks to append either Fizz, Buzz, or the number itself.
This approach uses a hash map to store possible outputs, simplifying conditional checks. By mapping integers to their respective Fizz or Buzz values, we consolidate decision logic, reducing redundancy in the code.
Time Complexity: O(n), since each element is evaluated once.
Space Complexity: O(n) due to storage for result strings.
1using System;
using System.Collections.Generic;
public class Solution {
public IList<string> FizzBuzz(int n) {
string[] values = { "", "Fizz", "Buzz", "FizzBuzz" };
IList<string> result = new List<string>();
for (int i = 1; i <= n; i++) {
int index = (i % 15 == 0) ? 3 : (i % 3 == 0) ? 1 : (i % 5 == 0) ? 2 : 0;
result.Add(index == 0 ? i.ToString() : values[index]);
}
return result;
}
}
This C# solution also uses an array to manage potential outputs. Through index calculation based on divisibility, choice logic is centralized in an optimal and less repetitive manner.