leetcode Reverse Words in a String
摘要:将句子的词反转,例如:Given s = "the sky is blue",return "blue is sky the".思路:就是从后面往前,找到非空格的长度,然后取到另一个串中。遍历一次就可以了。如下:class Solution {public: void reverseWords...
阅读全文
posted @
2014-12-18 09:32
higerzhang
阅读(149)
推荐(0)
leetcode[150] Evaluate Reverse Polish Notation
摘要:逆波兰表示法,在维基百科here一不小心就看到了维基上有说用栈处理。然后就用栈处理了。需要注意的是,操作数前后不要弄错,stoi可以调用。它应该是在stdlib.h的头文件里,不过我在codeblock上试了不行。class Solution {public: int evalRPN(vect...
阅读全文
posted @
2014-12-17 23:25
higerzhang
阅读(137)
推荐(0)
leetcode Max Points on a Line
摘要:在一个平面内有很多点,返回在同一条直线上的最多点数。用map来记录通过某点的,和其他点构成的斜率有几个点。因为斜率有不存在的情况,另外用一个数记录。还有,因为可能会有重复的点,所以重复的点也是要另外记录的。最后返回最大值。用迭代器遍历map,找出最大的数。因为map可能是零,因为如果所有的点够成的斜...
阅读全文
posted @
2014-12-17 22:17
higerzhang
阅读(244)
推荐(0)
leetcode Sort List
摘要:实现链表的nlgn时间排序,常数空间。想了想,符合那个时间复杂度的也就快排,堆,归并。一想到快排的最坏也是n方,就放弃了,堆的话貌似起码要组成堆要左右两个指针构建才比较方便。然后就觉得应该是要用归并了。还是看了JustDOIT大神的。自己也敲了一下。利用快慢指针找到中间,分成两个链表,然后递归,然后...
阅读全文
posted @
2014-12-16 22:30
higerzhang
阅读(212)
推荐(0)
leetcode Insertion Sort List
摘要:利用插入排序,对链表进行排序。插入排序点here。居然初次想用unordered map来存每个节点,然后根据下标就可以访问了,再更新下班,也就是n方的方法了。但是不知为什么超时了。插入排序不就是n方吗。/** * Definition for singly-linked list. * struc...
阅读全文
posted @
2014-12-15 22:27
higerzhang
阅读(224)
推荐(0)
leetcode LRU Cache
摘要:题目链接。实现一个数据结构用于LRU,最近最少使用,O(1)插入和删除。关于LRU的基本知识可参考here。先推荐JustDoIT的。下面是我自己实现的。class LRUCache{public://146LRU Least Recently Used int LRUsize; str...
阅读全文
posted @
2014-12-14 23:46
higerzhang
阅读(159)
推荐(0)
leetcode[145] Binary Tree Postorder Traversal
摘要:实现后序遍历递归:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(...
阅读全文
posted @
2014-12-13 22:45
higerzhang
阅读(170)
推荐(0)
leetcode Binary Tree Preorder Traversal
摘要:实现前序遍历。可参见中序遍历Binary Tree Inorder Traversal递归:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode...
阅读全文
posted @
2014-12-13 21:48
higerzhang
阅读(182)
推荐(0)
Leetcode Reorder List
摘要:实现链表如下所示:Given a singly linked listL:L0→L1→…→Ln-1→Ln,reorder it to:L0→Ln→L1→Ln-1→L2→Ln-2→…一开始想到一个n方的,就是每次找最后一个回调到相应位置,然后倒数第二个的next置为NULL,依次类推。果然超时。/**...
阅读全文
posted @
2014-12-13 20:55
higerzhang
阅读(139)
推荐(0)
leetcode Linked List Cycle II
摘要:给定一个链表,如果有环,返回环的起点,如果没环,则返回空指针。法一:unordered_set存做过的节点,一旦出现重复,那么它就是起点了。O(n)空间/** * Definition for singly-linked list. * struct ListNode { * int val...
阅读全文
posted @
2014-12-13 15:33
higerzhang
阅读(144)
推荐(0)
leetcode Linked List Cycle
摘要:判断链表中有没有环。一个指针跑一次,一个指针跑两次,相遇就是有环/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x...
阅读全文
posted @
2014-12-12 21:41
higerzhang
阅读(140)
推荐(0)
leetcode[140] Word Break II
摘要:这题是上一题的加强版,这里需要返回的是所有可能的分割词。例如:s="catsanddog",dict=["cat", "cats", "and", "sand", "dog"].A solution is["cats and dog", "cat sand dog"].先用dp求得每个起点到终点是否...
阅读全文
posted @
2014-12-12 21:21
higerzhang
阅读(573)
推荐(0)
leetcode[139] Word Break
摘要:给一个字符串,判断是否能够分为若干个部分,并且每个部分都能在字典dict里面找到。有的话就返回true。例如:For example, givens="leetcode",dict=["leet", "code"].Return true because"leetcode"can be segmen...
阅读全文
posted @
2014-12-12 15:13
higerzhang
阅读(1010)
推荐(0)
leetcode[138] Copy List with Random Pointer
摘要:这里是复制带有一个random指针的链表。是不是很熟悉啊。之前有做过克隆无向图的。那就借助leetcode Clone Graph的思路。分两次遍历链表,一次先复制普通的含next的,另一次就是复制random了。利用map记录,可以一次就找到想要的点。/** * Definition for si...
阅读全文
posted @
2014-12-12 11:52
higerzhang
阅读(471)
推荐(0)
leetcode[137] Single Number II
摘要:题目和上题类似,这里给的数组仅有一个数出现一次,其他的出现3次。返回那个出现一次的数。这题还是比较难想到的。不想上一题只要异或一下就可以了,不用额外操作。法一:还是用map方法class Solution {public:int singleNumber(int A[], int n){ un...
阅读全文
posted @
2014-12-12 11:21
higerzhang
阅读(3102)
推荐(0)
leetcode[136] Single Number
摘要:给定一个数组,里面有一个数只出现一次,其他的出现两次,找出出现一次的数。法一:map(但利用额外空间)class Solution {public: int singleNumber(int A[], int n) { unordered_map umap; for...
阅读全文
posted @
2014-12-12 00:29
higerzhang
阅读(1064)
推荐(0)
leetcode[135] Candy
摘要:最少糖果问题。一排小孩,每个孩子有一个优先级,每个孩子至少要发给一个糖果,优先级高的比周围的孩子的糖果要多。需要注意的是,优先级一样的没有要求说一样多糖果!先初始化,每人一糖。为了保证优先级大的比相邻的且优先级小的要糖果多。所以我们分两次处理,一次处理比左边的多,一次处理兼顾左边的多的情况下比右边的...
阅读全文
posted @
2014-12-11 23:41
higerzhang
阅读(1187)
推荐(0)
leetcode Gas Station
摘要:gas[i]表示第i个站点可以加的油,cost[i]表示到下一个站点要消耗的油,一开始油箱空,假设油箱可以装无限的油。然后在一个环中。那个起点开始可以绕一圈回到原点,有且仅有一个答案。如果没有则返回-1.There areNgas stations along a circular route, w...
阅读全文
posted @
2014-12-11 00:13
higerzhang
阅读(256)
推荐(0)
leetcode Clone Graph
摘要:复制一个无向图。图的结构时有一个label,一个vector存和他想接的节点。可以自循环,就是vector中可以存在自己。例如:Nodes are labeled uniquely.We use#as a separator for each node, and,as a separator for...
阅读全文
posted @
2014-12-10 21:42
higerzhang
阅读(281)
推荐(0)
leetcode Palindrome Partitioning II
摘要:题目和上题一样leetcode Palindrome Partitioning,这里需要求的是最小的分割数,也就是上一题的所有可能里面最少的一个分割。例如:For example, givens="aab",Return1since the palindrome partitioning["aa",...
阅读全文
posted @
2014-12-09 23:40
higerzhang
阅读(363)
推荐(0)