ARTS第四周

ALGORITHM

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4输出:1->1->2->3->4->4
class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        ret = l3 = ListNode(0)
        a = 0
        while l1 != None or l2 != None:
            if l1 != None and l2 != None:
                if l1.val <= l2.val:
                    a = l1.val
                    l1 = l1.next
                else:
                    a = l2.val
                    l2 = l2.next
            elif l1 == None:
                a = l2.val
                l2 = l2.next
            elif l2 == None:
                a = l1.val
                l1 = l1.next
                
            l3.next = ListNode(a)
            l3 = l3.next
            
        return ret.next
##递归
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {    
    if l1 == nil{        
        return l2
    }  
    if l2 == nil{        
        return l1
    }
    var res *ListNode    
    if l1.Val >= l2.Val{        
        res = l2        
        res.Next = mergeTwoLists(l1,l2.Next)
    }else{        
        res = l1        
        res.Next = mergeTwoLists(l1.Next,l2)
    }    
    return res
}

REVIEWS

对于大数据和训练,我的知识仅限于LTR这类,其余知之甚少,最近手边有一个ScalaSpark项目,读取MYSQL后分析短语关联,很有兴趣继续下去。很巧看到阿里发布了SqlFlow,可以完全依赖Mysql进行训练和分析,打算花时间好好看一下,对于广大没有大数据背景的开发来说,是一个相对容易入手的东西。

https://github.com/sql-machine-learning/sqlflow


TIPS

最近一个客户访问网站出现了登录丢失情况,ChromeFirefox均正常 IE11.0.105下稳定重现。检查了设置和版本后,确认是微软在IE11上的一个老BUG,IE10和11的浏览器适配文件由于某些开发的懒惰写法,导致更新后无法正确识别浏览器版本,到底的操作异常,以前很少关心IE的特殊问题,这次就顺便挖了一下原因。

http://www.cnblogs.com/maoniu602/p/3799958.html


SHARES

今年上半年的项目开发计划安排的比较紧,5,6月有3个比较大的Release,期间还穿插了很多必须解决的问题(系统不稳定,排序相关性,监控缺失,代码碎片化),从去年开始逐步对系统进行微服务化,拆分服务,容器化,独立运维监控HA。整个工作异常的繁杂,大量的历史Feature,臃肿高耦合的系统,老化的服务器,一步步披荆斩棘。遇到了很多次服务故障,兼容问题,头发掉了不少。团队也一直不稳定,进进出出。第一次国外出差,也见识了香港老迈的网络设施,无数次想一股脑将所有服务迁移到云上,希望以后有时间可以完成。

这周很累很忙,心情不太好,就当吐槽一下吧。以后会记录一下整个过程,希望能在不断填坑中成长。