02 arts打卡第二周

Algorithm

leetcode 第2题:两数之和

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

输出:7 -> 0 -> 8

原因:342 + 465 = 807


解题思路:可以转化为两数相加的公式,算出一个尾数和,就存进新链表中

/**

* Definition for singly-linked list.

* public class ListNode {

*    int val;

*    ListNode next;

*    ListNode(int x) { val = x; }

* }

*/

class Solution {

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

        ListNode first = null;

        ListNode last = null;

        int w = 0;//定义进位变量,当w=0时,两数相加的值小于10不进位,否则w=1是进位

        while (l1 != null || l2 != null) {

            ListNode l = last;//定义节点变量存储链表最后一个值

            int x;//定义变量存放两数相加的个位

            if (l1 == null) {//说明只剩下l2链表

                x = l2.val + w;

                l2 = l2.next;

            } else if (l2 == null) {//说明只剩下l1链表

                x = l1.val + w;

                l1 = l1.next;

            } else {

                x = l1.val + l2.val + w;

                l1 = l1.next;

                l2 = l2.next;

            }

            last = new ListNode(x % 10);

            w = x / 10;

            if (l == null) {//链表的一个节点

                first = last;

                continue;

            }

            l.next = last;

        }

        //w=1说明遍历结束后,还剩下一个进位 1

        if (w == 1) {

            ListNode newListNode = new ListNode(1);

            last.next = newListNode;

        }

        return first;

    }

}

用时10ms

内存消耗46.5MB

Review

滥用网络浏览器进行持久和隐秘的计算

Tip

使用idea刚建好的Springboot在进行打包时

没有跳过检查,每次打包时间挺长

02 arts打卡第二周_第1张图片

跳过检查


02 arts打卡第二周_第2张图片

这样再次打包就快了很多

Share

最近重构项目,以前使用的是dubbo,属于横向划分,web层和业务层之间用zookeeper调用,由于开发不太规范,整个业务层搞成了一个大项目,导致好多问题,比如,这个模块直接操作另个一个模块的数据库,扩展性比较差,代码冗余,都操作同一个业务层,有了新的功能,不能及时上线等等,现在整个改成了springcloud微服务架构,代码跑在容器里,自己管理自己的项目。

在使用springcloud推荐的Feign进行内部服务调用时,踩了坑,分享一下

在调用时,Feign接口get请求的参数是String非基本类型是,必须加@RequestParam 而且value值不能省略

get请求的参数是对象时,接口和controller层的对象必须加@RequestBody,否则会报不支持POST请求(纳尼~),另外加上一个Feign依赖(网上搜就行了),当然还有大牛把源码改掉的。

在调用返回后,接收参数时,是复杂类型对象,Feign为了使返回参数顺序一致,会把参数封装成LinkedHashMap,你进行强转时肯定会报错的,你必须要进行转JSON工具进行一下转换

你可能感兴趣的:(02 arts打卡第二周)