摘要: ---恢复内容开始---这道题考察的可能偏向逻辑的思考能力。最有效的方法是时间复杂度为O(n),空间复杂度为O(1).这种高效算法,参考一个前辈的思想:“My linear solution based on a observation that, if you stops at certain g... 阅读全文
posted @ 2014-04-25 21:33 echoht 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 感觉这道题很有趣。一开始的想法没有经过深入的思考,总是想当然,自然也就容易出错。后来深入思考题中提出的两个条件,想到一个局部极小这个概念,接下来的想法,就显得很自然而然。总的来说是先DP,然后根据DP的结果决定给每个小孩多少个candies。DP的关键在于定义一个表示子问题的数组变量,在这个题中定义... 阅读全文
posted @ 2014-04-25 16:59 echoht 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 * Given an array of integers, every element appears twice except for one. Find that single one. 3 * 要求最好是时间复杂度为O(n),空间复杂度为O(1) 4 ... 阅读全文
posted @ 2014-04-25 11:36 echoht 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 参考了一个前辈的算法,能够在O(n)的时间复杂度,O(1)的空间复杂度内解决这个问题。 算法过程如下图所示。总共有三个步骤:下面是AC代码: 1 class RandomListNode{ 2 int label; 3 RandomListNode next, random; 4 ... 阅读全文
posted @ 2014-04-25 11:20 echoht 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这一题是在上一题Word Break的基础上求总共有多少种分割方法,一定程度上可以被抽象成组合问题,而往往组合问题采用递归算法可以实现,所以想到递归也就是很自然的事。下面是AC代码。 1 /** 2 * Given a string s and a dictionary of wo... 阅读全文
posted @ 2014-04-25 00:59 echoht 阅读(258) 评论(0) 推荐(0) 编辑