自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stephen Wong的专栏

让明天把今天记住 不是因为孤独 因为我们追求的专注 不管它起起伏伏

  • 博客(6)
  • 收藏
  • 关注

原创 LeetCode 208. Implement Trie (Prefix Tree)

字典树。测试中有:aaaaaaaaaaa... 的输入,如果每个节点用定长数组存储孩子的话,那就是26^len的空间复杂度(len为输入的长度),内存会不够的。所以用map保存其孩子。代码:#include #include #include using namespace std;class TrieNode{public: // Initialize

2015-07-27 19:56:00 1083

原创 LeetCode 207. Course Schedule(拓扑排序-求有向图中是否存在环)

求有向图中是否有环。法一:拓扑排序用一个队列维护所有入度为0的节点,每次弹出一个节点v,查看从v可达的所有节点u;将u的入读减一,若u的入度此时为0, 则将u加入队列。在队列为空时,检查所有节点的入度,若所有节点入度都为0, 则存在这样的一个拓扑排序 —— 有向图中不存在环。

2015-07-27 17:10:35 3676

原创 LeetCode 206. Reverse Linked List(迭代和递归两种实现)

递归的代码比迭代的代码看起来更清爽一些,也是因为递归对行为进行了抽象吧。注意到,这是一个尾递归函数,一些编译器会将它优化为迭代,这样一方面,在代码层面保持了清晰的逻辑和可读性,一方面保持了代码的性能。代码:class Solution{public: ListNode* reverseList(ListNode* head) { // return iterat

2015-07-27 14:41:15 1797

原创 LeetCode 205. Isomorphic Strings

用一个哈希表,记录字母到字母间的映射即可。代码:class Solution{public: bool isIsomorphic(string s, string t) { for (size_t i = 0; i < s.size(); ++ i) { if (dict.find(s[i]) == dict.end())

2015-07-22 22:10:00 547

原创 LeetCode 204. Count Primes

LeetCode原题和维基百科都有解释用到的Sieve of Eratosthenes算法。 该算法可在O(nloglogn)时间内,求出小于n的所有质数;空间复杂度为O(n). 随着n的增大,当空间有限时,维基百科还提出了一种分段筛选(segmented sieve)方法,在时间复杂度不变的情况下,将空间复杂度降为O(n^0.5).下面代码实现了常规筛选(regular sieve)方法:cl

2015-07-22 14:39:46 699

原创 LeetCode 203. Remove Linked List Elements

代码:class Solution {public: ListNode* removeElements(ListNode* head, int val) { for ( ; head!=nullptr && head->val==val; head = head->next) {} for (auto cur = head; cur!=nullptr

2015-07-22 14:29:29 482

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除