Min's Blog


  • Home

  • Archives

  • Tags

  • Categories

PHP 学习笔记

Posted on 2020-05-23 | In Programming

快速了解PHP和PHP Web开发的笔记。

PHP Intro

PHP Syntax

PHP脚本在服务器端执行,返回HTML结果至浏览器。PHP脚本开始于<?php,结束于?>,

1
2
3
<?php
// PHP code goes here
?>

PHP中的关键字 (e.g. if, echo, etc) 大小写不敏感,但是变量名大小写敏感。

PHP Variables

PHP中变量以$开头,后面跟着变量名。例如:

Read more »

leetcode 314 解题思路及follow up记录

Posted on 2020-05-19 | In Programming , Interview

常规解法

非常简单,随便bfs或者dfs,再用hashmap记录一下index信息就行,具体实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def verticalOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
import collections
indexDict = collections.defaultdict(list)
level = [(root, 0)]
while level:
nextLevel = []
for node, idx in level:
indexDict[idx].append(node.val)
if node.left:
nextLevel.append((node.left, idx - 1))
if node.right:
nextLevel.append((node.right, idx + 1))
level = nextLevel
return [indexDict[k] for k in sorted(indexDict.keys())]

Follow-up: Without using Hashmap

Read more »

leetcode 116 117 Populating Next Right Pointers in Each Node II 解题思路记录

Posted on 2020-05-18 | In Programming , Interview

面snowflake的时候面到过类似117的题,本身也是高频tree题,记录一下

116. Populating Next Right Pointers in Each Node

这题是 perfect binary tree(Wikipedia: A perfect binary tree is a binary tree in which all interior nodes have two children and all leaves have the same depth or same level),所以简化了非常多。但是116和117的核心思路是一致的,这题如果不要求我们用constant extra space来做的话,思路就非常简单,寻常的bfs走一遍,生成每个next pointer就行了。但是普通的bfs显然不满足O(1)的空间要求,但是细细体会,next right pointer这个pointer其实可以提供给我们每一行的顺序,当我们要为child level构建next right pointer时,可以使用parent level已生成的pointer来提供bfs所需的信息。

两种实现,recursive或iterative:

Read more »

2019 Fall + 2020 Spring Software Engineer Intern Timeline 转专业找实习记录 + 面经

Posted on 2020-05-16 | In Programming , Interview

纯记录,时间顺序

Riot Games - Software Engineer Intern

2019.9.19 网申 当天收oa->9.25 完成oa->9.26 电面邀请-> 10.11 hr面 ->10.16 挂了。

没啥好说。

Goldman Sachs - Analyst Intern

2019.9.16 网申 -> 9.17 收到OA 隔天完成-> 9.11 收到HireVue -> 9.14 完成HireVue -> 10.9 Superday邀请(原定16号,midterm所以推迟到25号) -> 10.25 Superday -> 12.04 电话拒信

第一个正经面试。高盛一反常态的拖延结果,感觉可能被放备胎池了,但的确也面的不好,开学之后没刷题手生了,两道medium题都没做出来。在新泽西高盛的楼面的,安排的酒店挺舒服:O

Read more »

leetcode 968 979 解题思路记录

Posted on 2020-05-16 | In Programming , Interview

Medium Leetcode 979 Distribute Coins in Binary Tree

做tree的高频题碰到979卡住了,一道 uber, microsoft面试中都出现过的题。题干参考Leetcode,大概就是要把硬币分给每一个node,求最短分发路径。参考了lee215的答案,记录一下思路。

这题的解法思路是bottom to top的,所以用dfs + recursive来解。

  • 对于leaf node

    • 当value = 1时,它自给自足不向parent node要coin也不给coin
    • 当value > 1时,它给parent零花钱 = 他拥有的coin - 1
    • 当value = 0时,它向parent要1钱

    那么leaf就向上返回一个信号,range为[-1, +∞],这个range的绝对值,就是该leaf会消耗的步数。

  • 对于非leaf node

    非leaf node会收到子女们的信号,可能有的子女给钱(正值)有的要钱(负值),也可能通通给钱或要钱。如果有子女缺钱,那么父母可能拿自己的积蓄或者其他子女孝敬他的钱来补贴(细细体会,有贪心算法内味儿了),最后,该node返回的balance为left + right + node.val - 1 (别忘了给自己留一块钱),有缺钱或者有余钱,再发送一个信号给祖父母。

最后的最后,共产主义实现了。代码如下:

Read more »

leetcode tree 个人总结

Posted on 2020-05-15 | In Programming , Interview

Traversal

DFS Traversal

关于tree,最基础的就是遍历node,主要分为DFS和BFS两种思路。DFS的recursive方法是非常明了的,所以就不再赘述,主要对iterative的遍历实现再做一些要点记录。

常规迭代方法

​ 时间复杂度分析:dfs遍历会访问每一个node一次,所以时间为O(n),n为node的数量。

  1. Preorder (leetcode 144)

    先序遍历(Root-Left-Right)的实现是最简单的,用一个stack就可以做。一个需要注意的点是先加右节点至stack,再加左节点。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
    if not root:
    return []
    res = []
    stack = [root]
    while stack:
    node = stack.pop()
    res.append(node.val)
    if node.right:
    stack.append(node.right)
    if node.left:
    stack.append(node.left)
    return res

    空间复杂度:O(h),h是tree的高度。可以设想两种极端情况,当树为完全二叉树时,stack最多包含h个node,当树为链表状时,stack最多包含1个node。

    Read more »

常见植物野外识别手册 学习笔记

Posted on 2020-05-12 | In 读书笔记 , 植物学

浮生取义 读书笔记

Posted on 2020-05-10 | In 读书笔记

内容简介

吴飞关于农村自杀现象的研究 豆瓣链接

全书各章

第二章 命与义

读书笔记

​ 这章围绕着“过日子”、“做人”这些概念展开阐述中国传统家庭的家庭政治。中国人的人格是在家庭中建立的,blabla阐述家庭对中国人的意义。家庭中既有情感,也有政治,也因此区别于公共政治。家庭政治可以理解为一系列的权力游戏:(1)围绕家庭生活中的某个事件,人们希望有更大发言权,至少得到更多尊重。(2) 权力游戏的目的是维护亲密关系,但权力关系同样会渗入到对亲密关系的理解之中。(3)权力游戏并非玩过就完,而是会引起道德资本的重新分配,从而影响后面的游戏。 (4)家庭政治中的形式正义理解为常态的权力平衡。(5)由于全家的利益是公认的目的,在这样的权力游戏中,决定胜负的不仅是力量高低,而是“道德资本”。道德资本是一个家庭中被公认为对全家有益的言行或地位,会使人在权力游戏中取得上风,而一场权力游戏的结果又会为下一场权力游戏准备道德资本。

​ 在这个框架下,人的自杀有几种原因:赌气、丢人、想不开,为啥呢,因为觉得正义没有被伸张,人格价值受挫了,委屈了,自杀就成为一种反抗的手段。80年代妇女地位提高,自杀率升高,是妇女对人格价值敏感的一种体现,一点点委屈也会反抗(自杀)。

原文摘录

Read more »

React Django 前后端分离开发实践

Posted on 2020-05-09 | In Programming

React Django 前后端分离开发实践

Web Application Development (17-637)的course project,采用了前后端分离的开发与部署,小白入门项目,非常基础。

技术栈

前端:React+Reactstrap+Semantic UI

后端:Django+Django REST framework

前后端交互:axios

Read more »

axios使用总结

Posted on 2020-04-21
12<i class="fa fa-angle-right"></i>
Min Zhu

Min Zhu

Think of nothing things, think of wind.

17 posts
4 categories
22 tags
GitHub Linkedin
© 2020 Min Zhu
Powered by Hexo
Theme - NexT.Gemini