这是leetcode中FizzBuzz程序的最快解决方案(问题412)。我不能理解它的执行路线和程序中实际发生的事情。请帮我解释一下程序的执行路线。告诉我循环发生在哪里。
import java.util.AbstractList;
class Solution {
public List<String> fizzBuzz(int n) {
return new AbstractList<>() {
@Override
public String get(int i) {
i++;
if(i%15==0)
return "FizzBuzz";
if(i%3==0)
return "Fizz";
if(i%5==0)
return "Buzz";
return i+"";
}
@Override
public int size() {
return n;
}
};
}
}
1条答案
按热度按时间0sgqnhkj1#
实际上没有循环。
它们创建一个覆盖方法的列表。方法
size
返回给定的n
值。方法get
返回一个依赖于给定i
值的字符串。因此,这意味着它们不将值存储在列表中-它们只是在给定索引上计算value(“FizzBuzz”/“Fizz”/“Buzz”)