摘要: 题目要求是这样,给你一串只包含符号的字符串,看看这串符号合不合法。怎么算合法呢?"()()()"和"[{}]()"都算是合法,但"([)]"就不合法了。 思路很简单,通过上面举的例子,我们可以看出来,一个右括号的出现,其合不合法,取决于最后出现的的左括号能不能对应起来,如果不能对应(如"("和"]" 阅读全文
posted @ 2016-03-13 15:27 可普CS之家 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目要求是,给你一个单向链表,和一个数字n,删除该链表倒数第n个node,其中测试案例中n能保证一定有效。 思路很简单,用两个指针,它们两个相隔为n,当后面的指针指向链表尾的时候,前面的指针指向的node的下一个node,就是要删除的那一个。 代码如下:   阅读全文
posted @ 2016-03-13 12:49 可普CS之家 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 思路和3Sum一样,只是把O(n^4)变成了O(n^3),思路详细见3sum。最终能够ac。 代码如下:   阅读全文
posted @ 2016-03-13 12:39 可普CS之家 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 经典的backtracking(回溯算法)的题目。当一个题目,存在各种满足条件的组合,并且需要把它们全部列出来时,就可以考虑backtracking了。当然,backtracking在一定程度上属于穷举,所以当数据特别大的时候,不合适。而对于那些题目,可能就需要通过动态规划来完成。 这道题的思路很简 阅读全文
posted @ 2016-03-13 12:23 可普CS之家 阅读(4012) 评论(0) 推荐(0) 编辑
摘要: 这一题和leetCode(15)的3sum基本上一个思路 —— two pointer。而且题目保证只有有一个答案,所以还不需要考虑重复的问题,只需要维护一个与target差值最小的closeDistance,以及对应的数组上的值就好。 代码如下:   阅读全文
posted @ 2016-03-13 11:48 可普CS之家 阅读(202) 评论(0) 推荐(0) 编辑