小景哥哥

世界很大,而我们还需要再成长!

强烈推荐

矩阵覆盖

    10. 矩阵覆盖

     

    题目描述

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

     

     

     

    Java代码实现

        public int RectCover(int target) {

            if (target < 1) {

                return 0;

            } else if (target == 1 || target == 2) {

                return target;

            } else {

                return RectCover(target-1) + RectCover(target-2);

            }

        }

    阅读全文>>

作者:Jason分类:【offer浏览(172评论(0

2018-08-13

细观美剧

     

    作为一个不折不扣的美剧迷,我内心澎湃的小宇宙喷薄而出,细观美剧,感悟颇多。

    从《神盾局特工》到《闪电侠》,从《生活大爆炸》到《破产姐妹》,从《疑犯追踪》到《哥谭》,从《权利的游戏》到《西部世界》,从《天赋异禀》到《行尸走肉》,从《黑镜》到《福尔摩斯》,从《越狱》到《罪恶黑名单》,…,在美剧的世界里,你可以被强大的剧情牵引着,在扣人心弦的场景中遨游,在惊心动魄的格斗中历练,那感觉无与伦比。

    你可以跟着Coulson坐着昆式战斗机在世界各地穿越,你可以跟着quaker Daisy去震动全世界,你可以跟着Oliver或James去拯救一座城市,你可以跟着Max体验开放的美国文化,你可以跟着Shelden做去一个奇葩,你可以跟着Harry去93/4站台体验一个魔幻的奇妙世界,有太多的人物,有太多的角色,有太多的精彩,也有太多的无奈,但是美国大片的总体态势到最后都是英雄救美,完美结局。假如你看到最后结局很凄美,那我可以肯定的告诉你,你看的是假美剧。

    感悟一:需要很好的美国文化才能get到他们的笑点

    对于一些情景喜剧,比如《生活大爆炸》、《破产姐妹》等这种类型的美剧,真的需要一定的文化底蕴,才能在欣赏的过程中,体会他们所要表达的完整意义,才能get到他们的笑点,才能更好的了解到西方的文化底蕴和人文内涵。

    感悟而二:看美剧并不是仅仅浪费时间,真的可以提高英语水平

    英语一直作为短板的我,六级也是考了几次才低分飘过的人,在我考研的时候,每天都会看一集美剧,风雨无阻,大家都知道对于非英语专业的理科生来说英语单科分数线也就40分多一点,那年我的英语一成绩82(总分100),这对于一个非英语专业的普通人来说,已经相当可以了。

    感悟三:开拓视野,增长见识

    艺术来源于生活却高于生活。从体验美国文化层面来讲,还是能从一个侧面感受到开放的美国人民的生活气息,理解他们包容的意识形态,以及进取的人生态度。另一方面,不仅从感官上体验感受了一把视觉享受,还激发了想象力的脑洞,也拓展了你感知社会的眼光。

     记得字幕组、天天美剧这样的网站招募人员要求是必须看过100部美剧以上,我心里嗖的乐呵一下,奶奶的,老子看了200部也有了,虽然我口语不好,但是我听力好啊。

    我夜以继日的加班加点刷完了所有我喜欢看的美剧,然后突然就遇到了空前浩大的剧荒,没有一个可以看的了,这种感觉完全吞噬了我的小小内心,不知所措。苍天啊,大地啊,请赐予我一集美剧吧!

    问题:

    神盾局的Yoyo和闪电侠Barry谁更快?

    星际迷航为啥在太空中还能有声音?真空中不是没有粒子震动么?太空中没有空气,为啥会有火焰?

    钢铁侠遇到Max会出现什么情况?(这俩人都很好色)

    Michael和Imp合作越狱会不会更快一点?

    Finch和Sky谁的IT技术更牛?

    龙母是不是应该嫁给Oliver Queen而非John Snow?因为他俩经历很像啊。

     

    剧情:

    《神盾局》,最喜欢的美剧,没有之一。科幻+动作+大英雄主义,想象无边际,只有你想不到,没有做不到,各种奇异的人,各种奇妙的世界,完美无比。为捍卫正义可以牺牲一切。

    《闪电侠》,让Barry带你怀揣梦想穿越时空,拯救世界。

    《生活大爆炸》,一群个性独特的人毁你三观带你感悟生活,每三句话就出一个笑点,你要不笑那是因为你没文化。

    《破产姐妹》,大尺度带你闯进美国社会底层人民的生活。

    《哥谭》,为了心中的信仰拯救一座城。

    《行尸走肉》,人性的格斗。

    《黑镜》,科技太发达,脑洞大开。

     

     

     

     

    阅读全文>>

作者:Jason分类:【心情浏览(431评论(0

2018-04-13

1005. 继续(3n+1)猜想 (25)-浙大PAT乙级真题java实现

    1005. 继续(3n+1)猜想 (25)

    卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。
    当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这4个数已经在验证3的时候遇到过了,我们称5、8、4、2是被3“覆盖”的数。我们称一个数列中的某个数n为“关键数”,如果n不能被数列中的其他数字所覆盖。
    现在给定一系列待验证的数字,我们只需要验证其中的几个关键数,就可以不必再重复验证余下的数字。你的任务就是找出这些关键数字,并按从大到小的顺序输出它们。
    输入格式:每个测试输入包含1个测试用例,第1行给出一个正整数K(<100),第2行给出K个互不相同的待验证的正整数n(1<n<=100)的值,数字间用空格隔开。
    输出格式:每个测试用例的输出占一行,按从大到小的顺序输出关键数字。数字间用1个空格隔开,但一行中最后一个数字后没有空格。
    输入样例:
    6
    3 5 6 7 8 11
    输出样例:
    7 6


    阅读全文>>

作者:Jason分类:【pat浏览(221评论(0

2018-01-04

励志也是一种变相的洗脑

     

    当看过很多名人传记,听过很多励志演讲,买过很多励志图书,读过很多励志文章,突然发现说话的口吻就有一股好为人师的浓烈气味,时不时的就引用一句慷慨激昂的话,来教育一下身边无辜的人,时间长了不管身边的人有没有厌烦暂且不说,自己打心眼里觉得,已经被励志深深洗脑,一直觉得励志是个好东西,会激励你奋发向前,可是一认真,却输了。

    先从俞敏洪说起吧,老俞是一个不折不扣的咸鱼翻身的例子,一介草民经过努力晋升到金字塔顶端,一直羡慕老俞的亲身经历,一直在模仿,从未被超越,然后意思到,并不是每个人的成功都可以复制(此处打脸唐骏,对你的《我的成功可以复制》深表歉意),你所在的时代不同,你所成长的环境不同,你所经历的过程不同,你付出的努力不同,结果也就是千奇百态。只有在特定的发展环境下,做对了顺应发展的比较大的努力,幸运之神才会光顾你。

    对于永不言败,(此处对俞敏洪深表歉意,你的《永不言败》确实不错,此处只是发一下一个中年老同志的感慨)普世价值观都是持敬畏和看好的态度,但是Never say die也并不一定是真理,当你觉得自己很吃力,努力了那么多年都没有一点成效的时候,你是不是应该坐下来静静想想,是不是你的方向或者发力点出了问题,是不是你没有发觉自己真心喜好的事物,而只是随波逐流、叶公好龙?难道一定要永不言败吗?有的时候,放下才是一种更明智的选择,放下并追逐你真正内心愉悦的爱好,才是正确之道啊。所以,我们应该能看到,锲而不舍、坚持不懈,有的时候吧,真的会迷惑我们的心智,让我们在错误的道路上觉得自己是对的,还傻傻的在那儿乐呵。

    兴趣和事业的天平,一直在摇摆不定,其实只有在二者势均力敌的时候,才是一个人才能最大化的人生极点,把兴趣转化为事业,把事业当做兴趣,二者相辅相成、天然融合。不要整天嘟囔“梦想不是用来放在嘴上的,深埋在心里然后用一切行动让它发芽生长”,这些所谓的心灵鸡汤喝多了,真的会腻,真的会适得其反,此处感悟最深。一个人,不应该只会喝鸡汤,还要会吃茶叶蛋、豆浆油条、芝麻糊糊,人生应该丰富多彩的,而并不是只有励志一种鸡汤,还有小葱拌豆腐,还有蛋挞烧烤扎啤小龙虾。不要整天励志地像打了鸡血,每天雄赳赳气昂昂的,假如你的生命每天都只有这一个状态,你自己想想多无聊啊。不仅仅要学会励志,还要学会忧郁,还要学会平和,还要学会悲伤,还要学会快乐,还要学会寂寞,还要学会引吭高歌。

    生命是一种体验,并非只有励志才能更加快乐。假如一个人的一天仅仅像大家所想象的,亢奋的仅仅是工作,除了工作就是工作,而且更有甚者还不喜欢自己做的事情,把你单调的每一天加起来就是一个单调的人生。觉得一个人的一天应该这样度过(此处向保尔柯察金致敬):一天有很多时间段,有的时候听歌,有的时候写作,有的时候做自己喜欢的工作,有的时候聊天,有的时候品尝美食,有的时候散步,有的时候数天上的星星,当你尽可能最大化你这一天的经历,你这一天就是快乐的,当你把你快乐的每一天加起来就是一个快乐的人生。

    当感觉到被励志洗脑之后,你可以做了一个相反的动作,尽量刻意去说正常的话,而不是一味的亢奋,还要把亢奋带给本来就不需要的身边的每个人。只需要认认真真品味每一天的每一个瞬间,你就能感受到生活带给你的愉悦,就能感受到生命的气息,生活本来就是单纯的充满了各种美好,只是我们复杂化了她原本的意义。

    体验生活,感受生命。

    认真生活,努力微笑。

     

    阅读全文>>

作者:Jason分类:【人生浏览(279评论(0

2018-04-11

读书就是为了垒人设

          读书就是为了垒人设

           我来自上海,一个诗和远方并存的城市。

           在这个大千花花世界,每个人都想做一个有情怀的人,魔都更甚。我们不属于律师八大红圈,也融入不了五大银行,可内心却向往着五湖四海,我们想做一个有情怀的技术人,所以心中总有按捺不住的躁动,七大洲四大洋已在小小内心汹涌翻滚,想要追求诗和远方。

           毕竟技术仅仅是技术,只能在日常碾压我们的承受底线,情怀是一个多么奢侈的字眼。做一个有情怀的技术人,才能获得个人精神层面的满足和怡然自得。

           可能与世界对话最便捷、最经济、最有效、最实在的方式就是读书了吧,这里用的是可能。毕竟飞机太贵,轮船太慢,景区太挤,乡村大自然太偏,所以我们选择读书来充实自己,来构造自己B格高人一等的人设。站在巨人的肩膀上,扩展自己的眼界与学识,拓宽自己看问题的广度和深度。

    知识的储备会决定你活成一个什么样的人。经济学家和政治学家、诗人和工人、艺术家和企业家的视野总是千篇一律的不同。你通过读书获得的知识,会百分之百地决定你的人设。这些知识会像一个全方位立体化环绕的剧本,360度无死角的影响你人生种种可能的走向。同样,你自身修身、治国、平天下独一无二的人设,会反过来作用于你对于书籍的选择,这是一个双向满足的过程。最好的例子其实就是不同的时期,人设不同,你读的书也不一样。你读过的书形成了你的气质和精神需求。

    正是由于千千万万本书累计在我们心中,才造就了世界上各式各样的人。有些人大气豪放,有些人婉约内敛。就好像,你需要任何一种知识、一种技能,都可以在书中获得。比如说做饭、育儿、撩妹、PS、黎曼猜想的证明、欧洲旅行攻略、摄影、素描……

    世界没那么容易,读书并不是没什么卵用,但书不是万能的。所以说书是牛逼的,是必需品,读书可能不一定能改变世界,但可以改变你自己,make a difference。放眼望去读书的峥嵘岁月你会意识到,读书就是为了垒人设。

    不管出于什么目的读书,总是开卷有益的。

    这些所谓的功利性和非功利性的目的的集合,都是让你从一张白纸活到一本鲜活的自传。它有无数种方法和途径作用你的人生,但是最后,都是会让你成为一个让你自己充满期盼,或是意想不到的人,不管是坏的还是好的。

    所以说,读书还是很重要的,因为没有人想在王子救公主的故事里活成一个苍白毫无定义的NPC。

    毕竟谁对于自己人生的终极人设,不是主角呢?

    读书的作用,其实很简单,就是“垒人设”。

    我一点都不想祝你成长为一个出色的大人,我就想祝你永远不要把世界活成理所当然的样子。你得有自己的模样,腹有诗书气自华的模样。

    书是爱情,书是生活,书是未来。

    阅读全文>>

作者:Jason分类:【读书浏览(493评论(0

2018-09-30

旋转数组的最小数字

    6.旋转数组的最小数字

    题目描述
    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
     
     
    import java.util.ArrayList;
    public class Solution {
        public int minNumberInRotateArray(int[] array) {
           if(array.length <= 0)
                return 0;
           int index1 = 0;
           int index2 = array.length - 1;
           int indexMid = index1;
           while(array[index1] >= array[index2]){
               if(index2 - index1 == 1){
                   indexMid = index2;
                   break;
               }
               indexMid = (index1 + index2) / 2;
               if(array[indexMid] >= array[index1])
                   index1 = indexMid;
               else if(array[indexMid] <= array[index2])
                   index2 = indexMid;
           }
           return array[indexMid];
       }
    }
    阅读全文>>

作者:Jason分类:【offer浏览(152评论(0

2018-08-10

44.翻转单词顺序列

    44.翻转单词顺序列

    题目描述

    牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
     


    public class Solution {
        //利用java中String函数,简单明了
        public String ReverseSentence1(String str) {
            if(str.trim().isEmpty())
                return str;
            String[] temp = str.split(" ");
            String res = "";
            int i = temp.length - 1;
            for(; i > 0; i--){
                res = res + temp[i] + " ";
            }
            return res + temp[0];
        }
        //利用剑指offer上思想,两次反转字符串
        public String ReverseSentence(String str) {
            if(str.trim().isEmpty())
                return str;
            char[] c = str.toCharArray();
            Reverse(c, 0, c.length - 1);
            int pBegin = 0, pEnd = 0;
            while(pBegin < c.length){
                if(c[pBegin] == ' '){
                    pBegin++;
                    pEnd++;
                }else if(c[pEnd] == ' '){
                    Reverse(c, pBegin, pEnd - 1);
                    pBegin = ++pEnd;
                }else if(pEnd == c.length - 1){
                    Reverse(c, pBegin, pEnd);
                    pBegin = ++pEnd;
                }else
                    pEnd++;
            }
            return String.valueOf(c);
        }
        public static void Reverse(char[] c, int begin, int end){
            if(begin >= end)
                return;
            while(begin < end){
                char temp = c[begin];
                c[begin] = c[end];
                c[end] = temp;
                begin++;
                end--;
            }
        }
        
    }

    阅读全文>>

作者:Jason分类:【offer浏览(201评论(0

2018-08-24

1047. 编程团体赛(20)-浙大PAT乙级真题java实现

    1047. 编程团体赛(20) 
    编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。 
    输入格式: 
    输入第一行给出一个正整数N(<=10000),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:“队伍编号-队员编号 成绩”,其中“队伍编号”为1到1000的正整数,“队员编号”为1到10的正整数,“成绩”为0到100的整数。 
    输出格式: 
    在一行中输出冠军队的编号和总成绩,其间以一个空格分隔。注意:题目保证冠军队是唯一的。 
    输入样例: 

    3-10 99 
    11-5 87 
    102-1 0 
    102-3 100 
    11-9 89 
    3-2 61 
    输出样例: 
    11 176


    阅读全文>>

作者:Jason分类:【pat浏览(272评论(0

2018-01-24

1009. 说反话 (20)-浙大PAT乙级真题java实现

    1009. 说反话 (20)
    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
    输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
    输出格式:每个测试用例的输出占一行,输出倒序后的句子。
    输入样例:
    Hello World Here I Come
    输出样例:
    输入样例:
    Come I Here World Hello 


    阅读全文>>

作者:Jason分类:【pat浏览(265评论(0

2018-01-04

60.把二叉树打印成多行

    60.把二叉树打印成多行
    题目描述
    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
     
     
    import java.util.ArrayList;
    import java.util.Queue;
    import java.util.LinkedList;
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
        public TreeNode(int val) {
            this.val = val;
        }
    }
    public class Solution {
        public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
             ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
             if(pRoot == null)
                 return list;
             Queue<TreeNode> q = new LinkedList<TreeNode>();
             q.add(pRoot);
             while(!q.isEmpty()) {
            int l = 0, h = q.size();
            ArrayList<Integer> temp = new ArrayList<>();
            while(l++ < h) {
            TreeNode tn = q.poll();
                temp.add(tn.val);
                if(tn.left != null)
                q.add(tn.left);
                if(tn.right != null)
                q.add(tn.right);
            }
            list.add(temp);
             }
             return list;
         }
    }
    阅读全文>>

作者:Jason分类:【offer浏览(165评论(0

2018-08-25