代码改变世界

Valid Parentheses

2015-04-01 10:15 by 笨笨的老兔子, 147 阅读, 0 推荐, 收藏, 编辑
摘要:有一个由各种括号组成的字符串,判断其是否合法 合法准则即是否成对匹配(())合法({])不合法())(不合法思路:用栈模拟即可 class Solution {public: bool isValid(string s) { stack stk; for (size_t i = 0; i < s.size(); i++) { i... 阅读全文

Binary Tree Preorder Traversal

2015-04-01 10:00 by 笨笨的老兔子, 116 阅读, 0 推荐, 收藏, 编辑
摘要:二叉树的前序遍历 思路:小心程序运行栈溢出,用stack模拟 class Solution {public: vector preorderTraversal(TreeNode *root) { stack stk; vector res; if (root) stk.push(root); else ... 阅读全文

Remove Duplicates from Sorted Array

2015-04-01 09:27 by 笨笨的老兔子, 148 阅读, 0 推荐, 收藏, 编辑
摘要:将一个排好序的数组中重复的数字删除 思路:维护头和尾指针,头指针始终指向最后一个不重复的数字,尾指针不断向数组尾部探索找到不重复的值之后将其拷贝到头指针 class Solution {public: int removeDuplicates(int A[], int n) { if (n <= 1) { return n; }... 阅读全文

Merge Two Sorted Lists

2015-03-31 19:51 by 笨笨的老兔子, 141 阅读, 0 推荐, 收藏, 编辑
摘要:合并有序两个链表 class Solution {public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode* res = new ListNode(0); if (l1 == NULL) { return l2; } ... 阅读全文

Multiply Strings

2015-03-31 16:10 by 笨笨的老兔子, 143 阅读, 0 推荐, 收藏, 编辑
摘要:字符串的大数乘法,模拟题 把两个字符串倒过来以后对应位置相乘,注意最终结果要去掉最前面的0 class Solution {public: string multiply(string num1, string num2) { reverse(num1.begin(), num1.end()); reverse(num2.begin(), num2.end());... 阅读全文

3Sum

2015-03-30 16:10 by 笨笨的老兔子, 140 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个数组,如果存在三个数的和为0,求这三个数a、b、c,并使得a > threeSum(vector &num) { vector >res; if (num.size() 0 && num[i - 1] == num[i]) continue; target = num[i] * (-1); ... 阅读全文

Container With Most Water

2015-03-30 14:19 by 笨笨的老兔子, 140 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个有高度数组a,其中两个元素ai和aj构成一个水箱,水箱体积为V=min(ai,aj)∗abs(i−j),求maxV 基本思路,首先我们设定两块木板head和tail一个在头,一个在尾部,这个时候(tail−head)一定是最大的。然后开始往中间收缩,选择从短的板子开始往中间收拢,原因是水箱能够放的水的容量有最短的板决定。然后每次都比较收拢之后的容量是否大于原有容量,直到所有板子都被遍历到。... 阅读全文

Longest Substring Without Repeating Characters

2015-03-30 11:14 by 笨笨的老兔子, 334 阅读, 0 推荐, 收藏, 编辑
摘要:求最长字串,要求字串中的所有字母不重复 思路 设定head和tail两个指针,tail每往前移动一格,便检查tail和head之间的所有字母是否与tail指向的字母重复,如果重复则将head指向重复的后一格例如:abcdefdc,当前head指向a,tail指向f,当tail指向下一个d的时候扫描head和tail之间的值,发现c后面的d和tail指向的d重复了,则将head调整为指向e。 cla... 阅读全文

Add Two Numbers

2015-03-30 10:32 by 笨笨的老兔子, 155 阅读, 0 推荐, 收藏, 编辑
摘要:给定两个链表,链表中的数字非负,这是将两个整数由链表表示,且逆序,求两个整数的和。Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8思路:模拟题,对应位数相加,考虑一下链表长度不同,以及进位即可 class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNod... 阅读全文

Two Sum

2015-03-29 21:55 by 笨笨的老兔子, 123 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个数组和一个目标整数,已知这个目标整数一定等于给定数组中的某两个数字相加,求这两个数字在数组中的位置。Input: numbers={2, 7, 11, 15}, target=9Output: index1=1, index2=2 思路对这个数组做拷贝,然后进行排序,设定两个指针head和tail,如果 head+tail>target则tail-- head+tail twoSum(v... 阅读全文