每天进步一点点【2019.8.19】

一、Fizz Buzz【leetcode 412】

题目描述:写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;
  2. 如果 n 是5的倍数,输出“Buzz”;
  3. 如果 n 同时是3和5的倍数,输出 “FizzBuzz”
    输入
    15
    输出
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

分析:在循环中通过条件判断,决定当前列表位置加入哪一个结果【条件直接需要满足互斥要求,避免一个值满足多个条件,导致输出结果错误】
代码:

public List fizzBuzz(int n) {
         List list = new  ArrayList();
         for (int i = 1; i <=n; i++) {
             if(i%3==0 && i%5 ==0){
                 list.add("FizzBuzz");
                 continue;
             }
             if(i%5==0){
                 list.add("Buzz");
                 continue;
             }
             if(i%3==0){
                 list.add("Fizz");
                 continue;
             }
             list.add(i+"");
         }
         return list;
    }

改进思路:在条件:n是3和5的倍数时,可以直接将数对15取余;
实现

public List fizzBuzz(int n) {
         List list = new  ArrayList();
         for (int i = 1; i <=n; i++) {
             if(i%15 ==0){
                 list.add("FizzBuzz");
                 continue;
             }
             if(i%5==0){
                 list.add("Buzz");
                 continue;
             }
             if(i%3==0){
                 list.add("Fizz");
                 continue;
             }
             list.add(i+"");
         }
         return list;
}

二、每日一点心理学

阿基米德与酝酿效应
原理: 把难题放在一边,放上一段时间,才能得到满意的答案
典故: 在古希腊,国王让人做了一顶纯金的王冠,但他又怀疑工匠在王冠中掺了银子。可问题是这顶王冠与当初交给金匠的一样重,谁也不知道金匠到底有没有捣鬼。国王把这个难题交给了阿基米德。阿基米德为了解决这个问题冥思苦想,他起初尝试了很多想法,但都失败了。有一天他去洗澡,一边他一边坐进澡盆,以便看到水往外溢,同时感觉身体被轻轻地托起,他突然恍然大悟,运用浮力原理解决了问题;
启发:有时候适当的放松,会帮助我们从问题中跳出来,从别的维度寻找解决问题的方法;

三、每日一句
I have to take one thing for granted: that I will love you until the last breath leaves my body.

你可能感兴趣的:(每天进步一点点【2019.8.19】)