摘要: 这题AC的前提是get()和set()操作都得是O(1),不过题中没有说明这点(所以我一开始Naive的用了两个数组分别表示Key 和Value,想都不用想每个操作定然会达到N)。后来是看了discuss后,决定采用HashMap+LinkedList,但是结果还是一直TLE,其实TLE是预料中的,... 阅读全文
posted @ 2014-04-22 23:25 echoht 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 这道题较简单,这里不多说,下面是AC的代码: 1 /** 2 * 插入排序的算法比较简单,我看wiki上,当要在已排序列表中插入一个元素时,是从后到前遍历, 3 * 由于链表只能从前往后遍历,所以我采用从后到前。 4 * 要注意的地方就是找到位置时,处理链表的元素插入的... 阅读全文
posted @ 2014-04-22 15:28 echoht 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 这道题的难点在于:1. 对链表排序,这样就不能向访问数组一样随机访问里头的元素;2. 题中要求时间复杂度为O(nlogn),且空间复杂度为O(1)我们一般了解的是快排和归并可以达到这样的时间复杂度,但是快排对于链表操作显得比较复杂(其实归并对这个链表操作也很复杂),而通常的归并的空间复杂度又是O(n... 阅读全文
posted @ 2014-04-22 11:07 echoht 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 这题是计算逆波兰表达式的最终值,使用stack的进栈出栈操作,可以很容易实现。下面是AC代码: 1 /** 2 * Evaluate the value of an arithmetic expression in Reverse Polish Notation. 3 * 这题就... 阅读全文
posted @ 2014-04-22 10:16 echoht 阅读(120) 评论(0) 推荐(0) 编辑
摘要: LeetCode上目前只提供Java、C++、Python,我都采用Java.这道题是一个简单题(借助Java String提供的trim()和spilt()),需要注意的是题目的具体要求:1. 反转后的字符串首尾的空格需去掉;2. 单词与单词之间若有多个空格,反转后只能保留一个空格。下面是AC代码... 阅读全文
posted @ 2014-04-22 10:13 echoht 阅读(135) 评论(0) 推荐(0) 编辑