ARTS第1周

ARTS是左耳朵耗子专栏《左耳听风》用户自发每周完成一个ARTS:

1.Algorithm:每周至少做一个 leetcode 的算法题

2.Review:阅读并点评至少一篇英文技术文章

3.Tip:学习至少一个技术技巧

4.Share:分享一篇有观点和思考的技术文章

1.Algorithm:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入:123输出:321

 示例 2:

输入:-123输出:-321

示例 3:

输入:120输出:21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

第一次解法:

public int reverse(int x) {

        if(x == 0){

            return 0;

        }

        if(x > 0){

          String oldNum = new Integer(x).toString();

            String newNum = new StringBuilder(oldNum).reverse().toString();

            try{

                int result = Integer.parseInt(newNum);

            }catch(Exception e){

                return 0;

            }

          return  Integer.parseInt(newNum);

        }

        if(x < 0){

          String oldNum =  new Integer(-x).toString();

            String newNum = new StringBuilder(oldNum).reverse().toString();

              try{

                int result = -Integer.parseInt(newNum);

            }catch(Exception e){

                return 0;

            }


            return  -Integer.parseInt(newNum);

        }

        return 0;

    }

感觉时间挺长,换一种解法

public int reverse(int x) {

        if(x == 0){

            return 0;

        }

        if(x > 0){

            String reverseNum = "";

            while(x/10 != 0){


                reverseNum = reverseNum + x%10;

                x = x/10;


            }

            reverseNum = reverseNum + x%10;

            try{

                int result = Integer.parseInt(reverseNum);

            }catch(Exception e){

                return 0;

            }

          return  Integer.parseInt(reverseNum);

        }

        if(x < 0){

            String reverseNum = "";

            while(-x/10 != 0){


                reverseNum = reverseNum + (-x%10);

                x = x/10;


            }

            reverseNum = reverseNum +(-x%10);

              try{

                int result = -Integer.parseInt(reverseNum);

            }catch(Exception e){

                return 0;

            }


            return  -Integer.parseInt(reverseNum);

        }

        return 0;

    }

时间短了十几ms,直接判断比字符串来回操作要快。

2.Review:

最近想把之前写的一个项目的前端技术更新一下,也就是说看了个英文api文档(目前只看了一部分)

之前没学过前端框架,只是用了jquery,后来用了angularjs,最直接的用法-直接引用使用

但是后来发现一般都是前端工程化了。(因为不是专业的前端,加上前端技术够用就行,所以前端就比较落后吧)

打算用angular重写一遍。知道angular2及以后都是工程化的版本,而且也有很多ui组件可以用,所以对前端不太精通的很友好。之后可以写一些后续重写感受。

3.Tip:也是跟2有关,因为很多时候公司没有前端或者前端太少,需要后端写前端,各个前端框架都有各种好用的组件。方便快捷。

4.Share:

最近工作太忙,没时间沉淀一篇高质量的文章,那就推荐一篇吧。

https://mp.weixin.qq.com/s/ffmvRYM0TVIZF2bCzmoNxw

这篇文章是作者现阶段对java学习路线的一个推荐。

你可能感兴趣的:(ARTS第1周)