Example:
1
|
n = 15,
|
题目很简单,就是n为3倍数时输出Fizz
,n为5倍数时输出Buzz
,n同时为3或5倍数时输出FizzBuzz
。也就是说,在判断条件时,应该先判断n是否为15的倍数,接着再判断是否为3或者5的倍数来决定输出什么。代码如下:
1
|
class Solution {
|
这里说一句,好像LeetCode在代码中使用了List时是不需要导包的,我试了下不管在第一行加不加import java.util.*;
都没问题。
下面是时间与内存的消耗:
Runtime: 1 ms
Memory Usage: 37.2 MB
上边是通过%
进行了取模运算来实现的,看了评论区有人认为:
一般来说,对于CPU取余数的运算相对来说效率很低,如果可以避免使用大量的求余数操作,可以提升程序的性能。
于是就有了不使用%
的写法:
1
|
public class Solution {
|
下面是时间与内存的消耗:
Runtime: 1 ms
Memory Usage: 37.3 MB
这个方案里需要对两个变量进行重复的自增和重新赋值为0,可以用下边的方案来减少这些操作:
1
|
public class Solution {
|
下面是时间与内存的消耗:
Runtime: 1 ms
Memory Usage: 37.1 MB
i+""
和String.valueOf(i)
which is better between
list.add( “” + i );
and
addStr = String.valueOf(i); list.add(addStr)?
我认为后者的写法更好,因为i+""
实际上会new一个StringBuilder去拼接i
和""
,然后再调用toString()来得到字符串。而String.valueOf(i)
在底层是调用了Integer.toString(i)
来得到字符串。
原文:https://www.cnblogs.com/yixiaogo/p/11204470.html