Printing a pyramid matrix

How to print a pyramid matrix like that:

n = 2
[1, 1, 1]
[1, 2, 1]
[1, 1, 1]

n = 3
[1, 1, 1, 1]
[1, 2, 2, 1]
[1, 2, 2, 1]
[1, 1, 1, 1]

n = 4
[1, 1, 1, 1, 1]
[1, 2, 2, 2, 1]
[1, 1, 3, 2, 1]
[1, 2, 2, 2, 1]
[1, 1, 1, 1, 1]
def func(N):
    N += 1
    matrix = [[1 for _ in range(N)] for _ in range(N)]
    cnt = 0

    while cnt < N:
        # UP
        for i in range(cnt, N - cnt - 1):
            matrix[cnt][i] = cnt + 1

        # RIGHT
        for i in range(cnt, N - cnt - 1):
            matrix[i][N - cnt - 1] = cnt + 1

        # DOWN
        for i in range(N - cnt - 1, cnt, -1):
            matrix[N - cnt - 1][i] = cnt + 1

        # LEFT
        for i in range(N - cnt, cnt, -1):
            matrix[N - cnt - 1][cnt] = cnt + 1

        cnt += 1

    return matrix


if __name__ == "__main__":
    matrix = func(N=4)

    for line in matrix:
        print(line)

Reverse Linked List

Reverse a singly linked list.

Example:

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

Follow up:

A linked list can be reversed either iteratively or recursively. Could you implement both?

As you can seen that recursion implementation is pretty easy to achieve, but iteratively achievement might not. Above are two implementations.

# iteratively
class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head:
            return None
        
        pionner = head
        
        while pionner.next:
            old_head = head
            head = pionner.next
            pionner.next = pionner.next.next
            head.next = old_head
        
        return head
# recursively

Miscellaneous

过了周五,这个学期就要告以段落了。

然后接下来就是一周的疯狂复习了,加上考试了。

这段时间一直没有更新blog, 感觉还是应该偶尔记一点流水账的。今天早上起来巨冷,于是坐了Tram去学校,打算好好学几个小时习来着,但是被昨天下载的游戏耽误了好多时间> – <

在Tram上无意看到了昨天在超市买厨房打火机被多收了很多钱,所以下了Tram之后就直奔Caltron的ANZ去问了一下,结果人家并不怎么care这件事,说是直接去找Merchant就好。接着去修车行取了昨天拜托修的自行车,貌似除了链条还有很多问题,估计得我自己订零件修了(车行修车太贵了)

晚上和Angle去吃了晚饭,看了中华剧社的话剧《疯子,你好》,感觉故事很不错,最后的结尾挺让人感动的。把Angle送回家之后,我去找昨天的超市撕逼,结果人家的退款速度简直一气呵成,我也就只能All good了。

下周估计又是一场硬仗了(毕竟感觉这个学期没有好好学习。。),希望考完试可以有一个愉快的新旅程LoL

Keep going

Listen, smile, agree, and then do whatever the fuck you were gonna do anyway.

最近其实挺迷茫的。

因为还有不到一年的时间就要结束自己的研究生阶段了。但是感觉还有很多事情没有实现。比如到底是继续读博还是工作;是在国内发展还是在国外发展;让体重身材变得正常;说流利的英语;老妈一直关心的找女朋友。

每件事情其实都不是一蹴而就的。我一直相信现在的自己,藏着所有走过的路,读过的书和喜欢崇拜过的人。如果让我现在就决定到底要不要读博士或者去工作的话,真的很难。所以说我只有每天都让自己变得好一点,多看看书,多去健身房运动一下,还有多参加俱乐部认识新的朋友。总有那么一天,在积累了足够多的努力之后,成功就会追上你了。

最近因为学校的事情不得不回学校上课,非常感谢小槐树可以认可我,让我可以假期再回微软玩耍。所以想一想,其实生活中还是有很多好的事情在发生的嘛。

然后是最近的规划。因为刚开学,除了上课还是比较轻松的。希望可以利用这段时间认识一些新的朋友,学一些新的知识,努力充实自己:)

帝都十日

算算日子,来帝都已经有十天了。

不算工作的五天,大大小小的饭局约了有十多个。感觉减肥的大计又要暂时搁浅了。

之前在墨尔本报了健身房,疯狂跑步,基本上每天都可以轻一公斤的样子,最轻的时候甚至差点就要突破90大关了。但是最近各种吃吃吃,导致体重大有回升到一百的趋势。

然后工作其实还蛮轻松的。感觉整个小组是一个大的Scrum,然后我是一个小的Scrum team。每天只需要和Mentor沟通一下对好需求就可以了。

至于剩下的时间的话,就可以自由支配了。所以其实可以自己学到很多东西。虽说外面一直盛传微软不用加班,但是好歹要入乡随俗,STCA还是多多少少要加一点班的,不过范围全由自己掌握。

本来说上个周末要去圆明园和颐和园,但是时间总是不够用,和朋友玩了一会儿就没有时间去逛园子了。

周一刷朋友圈的时候看到Han也来了北京,原因竟然只是为了看升国旗,果然是思想觉悟超级高的党员。然后就愉快的和Han约了周四晚上的局。这应该也是我们第一次在国内见面吃饭。

上个周末和晓波约了周末去滑雪,感觉应该会很好玩,美滋滋。所以估计周末的另外一天我会抽出来去逛圆明园。

上周和这周的情况差不多就是这个样子了,希望假期在微软可以过的开心吧,顺便多学一点东西。

Cheers

Magic subject

一晚上撸了四千字出来,累到爆炸…
感觉如果现在让我穿越回大二,再来一次美赛,一定溜得飞起。
交了论文之后本来想睡个觉的来着,但是周四还有Cryptography & Security要考。
鉴于乌大爷一般不按套路出牌,我觉得还是要抓紧时间复习一下,考好这学期最后一场考试。