胡言乱语

记录一些无聊的日常


Leetcode12

Published at March 25, 2019 ·  1 min read

Subsets Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets. Example: Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 给出一组不重复的整数,返回所有子集 what is power set 回溯解法(DFS) 回溯算法三要素 选择 可以作出哪些选择 约束 不能做哪些选择 目标 最终要达成的目标 class Solution: def subsets(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ res = [] self....

如何给 PHP 添加新特性

Published at March 24, 2019 ·  7 min read

如何给 PHP 添加新的语法特性(译) 译者注: 文中的操作都是基于 PHP5.6 进行的修改,翻译这篇文章的时候 PHP7 都已经出了,有很多方法已经被遗弃,希望各位注意不要踩坑。 原文链接 正文 最近有好多人问我怎么给 PHP 添加新语法特性。我仔细想了想,确实没有这方面的教程,接下来我会阐述整个流程。同时这篇文章也是对 Zend 引擎的一个简介。 我提前为这篇过长的文章道歉。 这篇文章假设你已经掌握了一些 C 的基本知识,并且了解 PHP 的一些基本概念(像 zvals 结构体)。如果你不具备这些条件,建议先去了解一下。 我将使用你可能从其他语言获知的 in 运算符作为一个例子。它表现如下: $words = ['hello', 'world', 'foo', 'bar']; var_dump('hello' in $words); // true var_dump('foo' in $words); // true var_dump('blub' in $words); // false $string = 'PHP is fun!...

Leetcode11

Published at March 22, 2019 ·  2 min read

3Sum Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find alleft unique triplets in the array which gives the sum of zero. Note The solution set must not contain duplicate triplets. Example Given array nums = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ] 给一个数组,找出其中 3 数相加和为 0 的全部组合...

Leetcode10

Published at March 19, 2019 ·  1 min read

Generate Parentheses Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 给出数字n,列出所有有效的括号组合 此题和上次的排列组合都可以用回溯算法(DFS)解决 回溯算法3要点 选择 选择’(‘或者‘)’ 2. 限制 必须是有效的括号 括号闭合之前必须先开放 括号数有限(n) 3. 目标 排列好所有括号...

近期状态

Published at March 16, 2019 ·  1 min read

近期的感悟 性格 当你看到不同的人,对一件事发表不同看法的时候,你会对此深有感触。有人想这件事对我有什么帮助,有人想关我屁事,有人当个笑话,还有人杞人忧天。最后大家采取不一样的措施,因为这件事大家的人生发生了微小的变化。后来又来一件不一样的事,又采取不一样的措施,又发生了一些微小的变化,长此以往可以看到巨大的不同。 所谓的成功 之前看过一些书和电影,像「北方的空地」「free solo」「127 Hours」,主人公都是靠自己的爱好生活,很是羡慕,但是回过头来想,还有很多人没有爱好,还是得活着,只能向着金钱靠齐,所以有钱人就是成功典型,大家都向往成为一个有钱人。 工作 最近刚转正,来新公司半年,还是感觉自己比较孤单,刻意疏远同事导致的结果,工作也做的不尽如人意,加了一些技术微信群,看到开源大佬的努力,自己还需要多学习沉淀,不能太浮躁 生活 还是一如既往,不过开始做些改变,写写文章,记录下学习过程,不像之前挥霍时间了。 结束语 都是些屁话,记下来以后可以嘲笑下自己 要向好看不向坏看,这世界有太多不如意,但你的生活还是要继续,太阳每天依旧要升起,希望永远种在你心里 ...

Leetcode09

Published at March 14, 2019 ·  1 min read

46. Permutations Given a collection of distinct integers, return all possible permutations. Example: **Input**: [1,2,3] **Output**: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 给出一组不重复的整数,返回所有可能的排列组合 深度优先遍历解法DFS class Solution(object): def permute(self, nums): res = [] self.dfs(nums, [], res) return res def dfs(self, nums, path, res): if not nums: res.append(path) # return # backtracking for i in xrange(len(nums)): self....

Mysql InnoDB 锁和事务模型系列(一)

Published at March 10, 2019 ·  1 min read

Mysql InnoDB 锁 以下的所有操作都是基于 mysql8 Mysql innodb 包含的锁类型如下: 共享锁和排他锁 意向锁 记录锁 区间锁 Next-key 锁 插入意向锁 自增锁 断定锁(仅空间索引使用) 共享锁和排他锁 InnoDB 实现了标准的行级锁定。S(共享)和 X (排他)锁 S 允许事务读取一行的时候持有锁 X 允许事务更新或者删除一行的时候持有锁 如果事务 T1 对行 r 持有 S,事务 T2 对行 r 进行加锁的操作会有如下两种情况: * T2 对 r 加 S 可以立刻得到授权,T1 和 T2 都对 r 持有 S * T2 对 r 加 X 不能立马得到授权,得等 r 上的 S 都释放了以后才可以 如果事务 T2 对行 r 持有 X,事务 T2 对行 r 进行加任何类型的锁都不会立马得到相应,必须得等到 T1 释放掉对 r 加的 X。...

Leetcode08

Published at March 9, 2019 ·  2 min read

Reverse K-group Node Let’s continue the last problem. Here is the question I don’t understanind last time. How does the dummy.next change? Accurately When did the dummy.next change? Here is the answer.(How does the dummy.next change?)[https://leetcode.com/problems/reverse-nodes-in-k-group/discuss/11491/Succinct-iterative-Python-O(n)-time-O(1)-space/168139] This is related about how the python assign the variable. It’s pretty hard to understand for people first time....

Leetcode07

Published at March 7, 2019 ·  1 min read

Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is....

Leetcode06

Published at March 6, 2019 ·  1 min read

Merge K sorted link list 还是昨天的合并 K 个有序链表,今天去社区看了下,还有更简单的解决方案,时间复杂度和空间复杂度更好,大概的思路是用 Python 的最小堆来实现,每次从堆里弹出最小元素,然后最近一次哪个链表出了最小元素就把下一个塞进堆里,很高效,很简洁,元祖(tuple)的运用是这个实现的点睛之笔,下面贴出代码 def mergeKLists(self, lists): from heap import heappop, heapify, heapreplace dummy = node = ListNode(0) # 下面这一步很赞 h = [(n.val, n) for n in lists if n] # n 转 minheap heapify(h) while(h): # 取 堆里最小的值 v, n = h[0] if n....


Recent posts

Leetcode30

ElasticSearch 系列(一)

Mysql 分区表实践

Kafka 入门

Hugo 安装


Archives

2020 (11)
2019 (56)