国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LintCode Fizz Buzz 只用一個if語句

greatwhole / 2465人閱讀

摘要:看了一些答案使用了多個這里給出幾種方案給大家參考下建立將所對應的字符串分別映射,這樣一個即可對進行優化,只映射,這里需要一點數學技巧,大家看代碼就理解了利用的截斷功能暫時想到這些,歡迎指正

9.Fizz Buzz

Given number n. Print number from 1 to n. But:

when number is divided by 3, print "fizz".
when number is divided by 5, print "buzz".
when number is divided by both 3 and 5, print "fizz buzz".
Example

If n = 15, you should return:

[
"1", "2", "fizz",
"4", "buzz", "fizz",
"7", "8", "fizz",
"buzz", "11", "fizz",
"13", "14", "fizz buzz"
]

Challenge
Can you do it with only one if statement?

看了一些答案使用了多個if,這里給出幾種方案給大家參考下
1、建立HashMap,將3,6,9,12,5,10,0(i%15==0)所對應的字符串分別映射,這樣一個if(map.containsKey(i%15))即可

     public static HashMap map = new HashMap<>();
     static{
         map.put(3,"fizz");
         map.put(6,"fizz");
         map.put(9,"fizz");
         map.put(12,"fizz");
         map.put(5,"buzz");
         map.put(10,"buzz");
         map.put(0,"fizz buzz");
     }
    public List fizzBuzz(int n) {
        List ret = new ArrayList<>();
        for(int i=1;i<=n;i++){
            int key = i%15;
            if(map.containsKey(key)){
                ret.add(map.get(key));
            }else{
                ret.add(""+i);
            }
        }
        return ret;
    }

2、對1進行優化,只映射3,5,8,這里需要一點數學技巧,大家看代碼就理解了

   public static HashMap map = new HashMap<>();
     static{
         map.put(3,"fizz");
         map.put(5,"buzz");
         map.put(8,"fizz buzz");
     }
    public List fizzBuzz(int n) {
        List ret = new ArrayList<>();
        for(int i=1;i<=n;i++){
            int key = f(i,3)+f(i,5);
            if(map.containsKey(key)){
                ret.add(map.get(key));
            }else{
                ret.add(""+i);
            }
        }
        return ret;
    }
    
    private int f(int i,int k){
        return (k-i%k)*((k-i%k)/k);
    }

3、利用&&的截斷功能

      public List fizzBuzz(int n) {
          List ret = new ArrayList<>(n);
            for(int i=1;i<=n;i++){
                String str = null;
                boolean bool1 = i%3==0&&(str="fizz")!=null;
                boolean bool2 = i%5==0&&(str="buzz")!=null&& i%3==0&&(str="fizz buzz")!=null;
                if(str==null){
                    ret.add(""+i);
                }else {
                    ret.add(str);
                }
            }
           
            return ret;
      }

暫時想到這些,歡迎指正

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77101.html

相關文章

  • [LintCode] Fizz Buzz

    Problem Given number n. Print number from 1 to n. But: when number is divided by 3, print fizz.when number is divided by 5, print buzz.when number is divided by both 3 and 5, print fizz buzz. Example ...

    gaara 評論0 收藏0
  • 算法Training——數學規律

    摘要:計算階乘中尾部零的個數描述計算出階乘中尾部零的個數樣例,故返回分析對數字做質數分解,例如,可以知道能夠在尾部產生零的只有質數和質數的乘積由于是階乘,質數的個數明顯大于質數的個數特別需要注意的是,類似,數字里面是有的指數的因而,總的個數應當是 1.計算階乘中尾部零的個數 描述: 計算出n階乘中尾部零的個數 樣例: 11! = 39916800,故返回2 分析 對數字做質數分解,例如2...

    lwx12525 評論0 收藏0
  • Leetcode PHP題解--D40 412. Fizz Buzz

    摘要:題目鏈接題目分析這個題目也很簡單。從逐個輸出到給定數組,但逢輸出,逢輸出,逢輸出。思路沒什么好說的了。用整除判斷能否被分別整除或同時整除。然后替換要輸出的內容即可。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 412. Fizz Buzz 題目鏈接 412. Fizz Buzz 題目分析 這個題目也很簡單。 從1逐個輸出到給定數組,但逢3輸出Fizz,逢5輸出Buzz,逢15輸出F...

    tracymac7 評論0 收藏0
  • The Coding Kata: FizzBuzzWhizz in Java8

    摘要:匹配器是一個一元函數,入參為,返回值為,是一種典型的謂詞。執行器也是一個一元函數,入參為,返回值為,其本質就是定制常見的操作,將定義域映射到值域。為一個工廠類,用于生產各種。其中,使用了的。 Functional programming leads to deep insights into the nature of computation. -- Martin Odersky 形式...

    張率功 評論0 收藏0
  • JS 使用短路原理簡化條件語句代碼

    摘要:首先得介紹下短路原理,一共就以下四點非常關鍵只要前面為不管后面是還是,都返回后面的值。正常思路也是最簡單的思路就是條件語句,如下結束但是代碼看起來非常的多,雖然方便閱讀,但是不方便裝逼啊使用短路原理大大精簡條件語句代碼,如下怎么樣,就一行把 首先得介紹下短路原理,一共就以下四點(非常關鍵): 1、只要||前面為false,不管||后面是true還是false,都返回||后面的值。 2、...

    yuxue 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<