2019-03-18

goal 1

A

add two numbers

/**
 * 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 ret = new ListNode(0);
        ListNode res = ret;
        ListNode p1 = l1;
        ListNode p2 = l2;
        int flag = 0;
        while(p1 != null && p2 != null){
            res.val = p1.val + p2.val;
            if(flag == 1){
                res.val = res.val + 1;
                flag = 0;
            }
            if(res.val >= 10){
                res.val = res.val - 10;
                flag = 1;
            }
            if(p1.next != null || p2.next != null || flag == 1 ){
                res.next = new ListNode(0);
                res = res.next;
            }

            p1 = p1.next;
            p2 = p2.next;
        }
        if(flag == 1){
            res.val = 1;
            flag = 0;
        }
        while(p1 != null){
            res.val = p1.val + res.val;
            if(res.val >= 10){
                res.val = res.val -10;
                flag = 1;
            }
            if(p1.next != null || flag == 1){
                res.next = new ListNode(0);
                
                res = res.next;
                if(flag == 1){
                    res.val = 1;
                    flag = 0;
                }
            }
            p1 = p1.next;
        }
        while(p2 != null){
            res.val = p2.val + res.val;
            if(res.val >= 10){
                res.val = res.val -10;
                flag = 1;
            }
            if(p2.next != null || flag == 1){
                res.next = new ListNode(0);
                
                res = res.next;
                if(flag == 1){
                    res.val = 1;
                    flag = 0;
                }
            }
            p2 = p2.next;
        }
        return ret;
    }

}

这个题目比较简单,但是做的时候还是有些情况没有考虑到,有如下几点:

  1. 在第一次同步遍历完两条链表的时候,之后没有考虑最后一次如果进位的情况
  2. 没有考虑单条遍历最后一步的进位情况

得到教训,以后做题的时候还是先把题目仔细想一遍再动手,最好画出来。

R go语言介绍与hello world

go tutorial这一系列介绍了go

什么是go

go是google推出一种静态强类型的编译型语言。

为何选择go?:

  • 天生支持并发, 编写并发很简单, go通过Goroutines和channels来完成并发
  • go是编译型语言,源码会被编译成机器码运行,效率比解释性语言高很多。
  • go文档简单
  • go编译器支持静态链接,所有依赖库都会被链接到为一个二进制可执行文件,部署方便,移植性也还不错。

安装

安装地址

按照步骤一步一步安装的

以上就是这篇文章的总结~

你可能感兴趣的:(2019-03-18)