292. Nim Game

2018-07-12
阅读 1 分钟
1.1k
题目链接:Nim Game 思路:博弈论类型的题目。我们知道,如果是1,2,3,则先走的必胜,4,则先走的必败。总结规律得知,4的倍数时,先走的必败。 算法复杂度: {代码...} 代码: {代码...}

268. Missing Number

2018-07-10
阅读 2 分钟
1.3k
思路:方法1: 排序我们很自然的可以想到,如果数组是排好序的,那么可以很容易的找到缺少的数字。之后我们可以查看头尾两个数字是否符合要求。如果不符合我们可以直接返回结果。最后,我们查从1到n-1个数字。

774. Jewels and Stones

2018-07-09
阅读 1 分钟
1.3k
思路:从题目得知,我们是求字符串J在字符串S中出现的次数。也就是说,one-pass就可以brute force获得答案。当然可以利用set()数据结构进行优化。

7. Reverse Integer

2018-07-06
阅读 2 分钟
2.1k
思路:因为Python中的数字是没有overflow的,即limit取决于电脑的内存。不过题目有额外要求,假设我们只能处理32-bit signed 的数字区间。 所以需要另外加一个判断。另外,Python内置的int()函数可以把 "001" 转换成数字 1。

226. Invert Binary Tree

2018-07-05
阅读 2 分钟
1.2k
思路:如果需要反转一个二叉树,那么我们需要遍历整个树的所有节点。如果想遍历所有的节点,我们可以用Depth First Search(DFS)或者Breadth First Search(BFS)。这两种办法分别可以用迭代(iterative)或者递归(recursive)的办法实现。

204. Count Primes

2018-07-03
阅读 1 分钟
2k
题目链接:Counting Primes 思路:首先要知道如何判断一个数字是否为素数。具体方法可以看这里 其次,如果朴素的判断,那么会因为效率底下而超时。所以在我们每次找到素数的时候,可以把素数的倍数都标记为非素数。这样可以节省轮询的时间。 算法复杂度: {代码...} 代码: {代码...}