美文网首页
5 ARTS打卡第五周(2019-09-01)

5 ARTS打卡第五周(2019-09-01)

作者: 无敌的潘大帅 | 来源:发表于2019-09-29 11:49 被阅读0次

    Algorithm

    本周题目:283.移动零
    解题思路:今天这道题目耗费了三个半小时还没解出来,因为一开始的思路错误了,导致一直在死胡同里面钻,之后要给自己解题设置时间限制,最多45分钟,如果没解出来就要去看别人的题解思路了。今天的这道题,我一直用二分查找的思想在想这道题,但是一直行不通,错了四次,然后我看了题解思路之后,豁然开朗,原来这道题的思路这么简单,我却花费了这么久还没解出来!!之后在解题的时候要多多转换思路,不能一直蒙着头一直往前冲。官方的题解思路是:这道题目可以分为两个子问题进行,1.不为0的数字移动至前面,2移动完成后在最后一位不为0的数字后的索引填充0。这样简单用几行代码就可以完成这道题目了。我用了数十行代码还没解决。
    题解代码:

    class Solution {
        public void moveZeroes(int[] nums) {
            int indexNotZero = 0;
            for (int i = 0; i < nums.length; i++) {
                if (nums[i] != 0) {
                    nums[indexNotZero] = nums[i];
                    indexNotZero++;
                }
            }
            
            for(int i = indexNotZero; i< nums.length; i++) {
                nums[i] = 0;
            }
        }
    }
    

    Review

    What I learned from doing 1000 code reviews
    这篇文章告诉我们如何在编码中改掉一些坏习惯

    Tip

    编码思路:通过拆解功能模块为若干个子问题,将关注点移至某子问题上,而不受其他子问题的困扰。我在这种开发模式上获益很大,在逐一解决子问题的过程中,我发现我格外的轻松。考虑的方面仅仅只是子问题的部分,其他的子问题对我来说是不可见的,我是根本不用去考虑,子问题封装的方法,我在另一个子问题还可以复用,一举两得。跟我之前面对大问题去编码的情况有着质一样的变化。那时候我考虑这个考虑那个,最后把自己拧成了一团麻,不仅耗费时间,而且问题还得不到完善的解决。所以在面对一个模块,或者一个功能的时候,一定要三思而后行,将模块的需求,及主要的情况,以及面对临界值的考虑思考清楚,头脑中有了成型的思路以后,编码的速度奇快无比,而且还很轻松,千万不能一股脑的就立马开始敲代码。

    Share

    修改tomcat端口方法
    让服务器可以启动多个tomcat

    相关文章

      网友评论

          本文标题:5 ARTS打卡第五周(2019-09-01)

          本文链接:https://www.haomeiwen.com/subject/srdxyctx.html