>

自由软件精神——“自由、开放、分享”。自由软件自诞生之日起,就秉承了学术自由的思想,信奉科学无国界,知识应该全人类共享。

ubuntu精神——人道待人,天下共享连接人人的信念。具有 ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能......

文章, 第4页

leetcode刷题 Unique Paths

直接用解析求解,C(m+n-2,m-1)就是结果!

标签:

leetcode刷题 Minimum Path Sum

就是dp,通常dp[i][j]=the relationship of dp[i-1][j] and dp[i][j-1],由于边界条件的影响,通常需要扩展一维!而真正迭代的时候就从i=j=1开始,最后的接过dp[max_row][max_col]就是结果!面试前必看此题!

标签:

leetcode刷题 Sum Root to Leaf Numbers

典型的dfs,用一个参数path作为路径数值,用另外一个接过参数保存path,然后返回result参数即可!非常常用的编程模式!

标签:

leetcode刷题 Divide Two Integers

尼玛这种数值运算限制的题目100%要使用位运算,要么是移位,要么是异或与运算!

标签:

leetcode刷题 Surrounded Regions

尼玛,就是一直过不了!思路搁在这里,就是将最外面的O用dfs标记下,和其连接的都是不可以修改的O!其他的都是可以直接修改O为X!

标签:

leetcode刷题 Palindrome Partitioning

没啥说的,就是dfs!通常需要你自己递推下!for ch in string: if prefix is palindrome; subsets= process suffix recursively; merge prefix to subsets; ans.append(subsets);这是处理字符串问题的常用模式!注意我保存结果不是在dfs结束的地方,而是最顶层合并,insert到数组的最前面!用最传统的参数传递路径+result在最底层的时候保存结果方式也是可以的!见第一种方式!

标签:

leetcode刷题 Simplify Path

自己傻叉了,明明用stack来处理就非常简单的。做题前一定多思考,不要拿到题目就开始整!

标签:

leetcode刷题 Clone Graph

就是用BFS做,使用一个map来映射copy的结点和原来结点,这样在建立边的时候可以利用该映射来做,例如:for e in node.neighbors: map[node].neighbors.add(a copy of e)!

标签:

leetcode刷题 Set Matrix Zeroes

用一维数组代替二维数组省点空间!

标签:

leetcode刷题 Search a 2D Matrix

没啥说的!到处都出现过!

leetcode刷题 Sort Colors

尼玛,MS的面试题目,当初题意理解错误,两次快排即可搞定!

标签:

leetcode刷题 Gas Station

以为是环形数组的DP问题,结果发现需要推导一个公式才可以搞定,不好做!

标签:

leetcode刷题 Remove Duplicates from Array

这种题目做起来真的是太顺手了!希望面试遇到!

标签:

leetcode刷题 Rotated Sorted Array II

这个时候需要根据arr[mid]和arr[low]的关系来决定移动方向,如果大于或者小于则按照Rotated Sorted Array I来做,如果arr[mid]==arr[low]则需要移动low,让low+=1,来绕过蛋疼的连续相等的数字。

标签:

leetcode刷题 Remove Duplicates

尤其当心,记得将新的返回链表的tail.next=None!

标签:

leetcode刷题 Swap Nodes in Pairs

指针太容易出错了!尼玛面试真遇到,真不好一次写对!

leetcode刷题 Partition List

注意在分出两个一大一小链表以后,记得将tail.next=None,然后再连接在一起!

标签:

leetcode刷题 Single Number II

由于序列中除了那唯一的一个数之外所有的数都是三个三个出现的。如果把这些数都转换成二进制,那么二进制数中1的那些位会连续出现三次,我们可以利用这个思路来解题。比如:3331222转换成二进制为:11 11 11 01 10 10 10。在第1位上,1出现了4次。第2位上,1出现了6次。那么我们把每一位上为1的个数mod 3剩下的1就是我们所求的数,比如这个例子:4 mod 3 = 1; 6 mod 3 = 0。这样剩下的二进制位为:01。那最后所求的数就是1了。

leetcode刷题 Single Number

一条代码搞定!reduce(lambda x,y: x^y,A)。

leetcode刷题 Decode Ways

就是用DP啊,DFS+cache也可以!dp[i]表示位置i截止的子串组成的解码方式数,则dp[i]+=dp[i-1] 如果s[i]是单个有效字符的话,dp[i]+=dp[i-2],如果s[i]和s[i-1]可以一起组成有效字符的话!是不是感觉像Fib数列!此外,dp的启动需要先手动计算dp[0]~dp[2]。所有DP的题目都会有这个问题!

标签:

« 1 2 3 4 5 6 7 8 9 10 » 返回顶部