随笔分类 -  零基础刷leetcode

google
摘要:题目意思:判断一个字符串(){}[]是否符合思路:用栈ps:实习一个多月了,代码也刷不动了,状态真不是一般的差class Solution {public: bool isValid(string s) { if(s==""||s.size()%2==1) ... 阅读全文
posted @ 2015-08-17 16:30 影翕 阅读(168) 评论(0) 推荐(0)
摘要:题目意思:给一个乱序数组,在里面寻找三个数之和为target的所有情况,这些情况不能重复,增序排列思路:采用3Sum的做法 ps:有见一种用hash的,存任意两个元素的和,然后变成3sum问题,需要判断重复 图书馆的网,已经到了令人发指的程度,我告诫自己千万不要暴躁。 1 class Sol... 阅读全文
posted @ 2015-06-23 15:26 影翕 阅读(286) 评论(0) 推荐(0)
摘要:题目意思:给一个数组,给一个target,找三个数的和,这个和要与target距离最近,输出这个和思路:这个题比3sum要稍微简单一点,如果需要优化,也可以去重,不过因为结果唯一,我没有去重。 min abs(flag=num[i]+num[j]+num[k]-target),判断条件稍微调整,... 阅读全文
posted @ 2015-06-23 14:34 影翕 阅读(319) 评论(0) 推荐(0)
摘要:题目意思:给一个乱序数组,在里面寻找三个数之和为0的所有情况,这些情况不能重复,增序排列思路:前面2sum,我用的是map,自然那道题map比双指针效率高,这道题需要先排序,再给三个指针,i、j、k 对于i指针从前往后遍历,对于一个固定的i指针,其实就是2Sum的情况,给定一前一后两个指针进行遍... 阅读全文
posted @ 2015-06-23 14:02 影翕 阅读(364) 评论(0) 推荐(0)
摘要:题目意思:给一个数组,找到和为target的两个元素的序号,并且只有一组这样的元素思路:map(nums[i],i+1),然后从后往前循环,用count找,比较i+1 1 class Solution { 2 public: 3 vector twoSum(vector& nums, int... 阅读全文
posted @ 2015-06-23 10:22 影翕 阅读(276) 评论(0) 推荐(0)
摘要:题目意思:vector v存数 eg.123 则v[0]=1,v[1]=2,v[2]=3,加1后返回一个vector思路:先判断新的vector长度是否需要加1,然后从vector最后一位开始往前进位 1 class Solution { 2 public: 3 vector plusOn... 阅读全文
posted @ 2015-06-23 10:01 影翕 阅读(231) 评论(0) 推荐(0)
摘要:题目意思:int数字反转考虑:越界问题 1 class Solution { 2 public: 3 int reverse(int x) { 4 long ans=0; 5 while(x){ 6 ans=ans*10+x%10; 7... 阅读全文
posted @ 2015-06-20 09:21 影翕 阅读(238) 评论(0) 推荐(0)
摘要:题目意思:判断是否为回文数,不许使用额外空间 ps:一直不理解额外空间的意思,int能用吗思路:1.比较头尾 2.翻转,越界问题需考虑 1 class Solution { 2 public: 3 bool isPalindrome(int x) { 4 if(x... 阅读全文
posted @ 2015-06-18 17:35 影翕 阅读(193) 评论(0) 推荐(0)
摘要:题目意思:求字符串中,最长不重复连续子串思路:使用hashmap,发现unordered_map会比map快,设置一个起始位置,计算长度时,去减起始位置的值 eg:a,b,c,d,e,c,b,a,e 0 1 2 3 4 0 1 5 3 4 0 6 5 3 4 ... 阅读全文
posted @ 2015-06-18 15:41 影翕 阅读(162) 评论(0) 推荐(0)
摘要:题目意思:罗马数字转int思路:字符串从最后一位开始读,IV:+5-1 1 class Solution { 2 public: 3 int romanToInt(string s) { 4 map mymap; 5 mymap['I']=1; 6 ... 阅读全文
posted @ 2015-06-17 21:18 影翕 阅读(247) 评论(0) 推荐(0)
摘要:题目意思:1-3999转罗马数字思路:从大往小减 ps:这题有点蛋疼 1 class Solution { 2 public: 3 string intToRoman(int num) { 4 string a[]={"I","IV","V","IX","X","XL","... 阅读全文
posted @ 2015-06-17 20:37 影翕 阅读(200) 评论(0) 推荐(0)
摘要:题目意思:用队列实现栈,push(),pop(),top(),empty()思路:用两个queue,pop时将一个queue的元素pop再push到另一个队列,queue只留最后一个元素,并pop,再将目标队列变为另一个 ps:用栈实现队列,参考剑指offer 1 class Stack { 2 ... 阅读全文
posted @ 2015-06-17 09:36 影翕 阅读(218) 评论(0) 推荐(0)
摘要:题目意思:全排列思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧 ps:vector这玩意不能随便返回,开始递归方法用vector,直接到500ms,换成void,到12ms 1 class Solution { 2 public: 3 vector> pe... 阅读全文
posted @ 2015-06-14 21:54 影翕 阅读(307) 评论(0) 推荐(0)
摘要:题目意思:如果有环,返回入口结点思路:先判断有没环,再计算环的结点数,然后p1指向头,p2往后移结点次数,p1、p2相遇为入口结点 ps:还是利用指针间距这个思路 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode ... 阅读全文
posted @ 2015-06-14 17:10 影翕 阅读(172) 评论(0) 推荐(0)
摘要:题目意思:链表有环,返回true,否则返回false思路:两个指针,一快一慢,能相遇则有环,为空了没环 ps:很多链表的题目:都可以采用这种思路 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * ... 阅读全文
posted @ 2015-06-14 16:06 影翕 阅读(204) 评论(0) 推荐(0)
摘要:题目意思:去掉链表中倒数第n个节点思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了 2.一次遍历,两个指针,用指针间的距离去计算。 ps:特别注意删掉第一个节点的情况,在前面加个头结点,则变为了删除第二个节点的情况 1 /** 2 * Defin... 阅读全文
posted @ 2015-06-14 15:27 影翕 阅读(158) 评论(0) 推荐(0)
摘要:题目意思:在递增数组中找到目标数的位置,如果目标数不在数组中,返回其应该在的位置。思路:折半查找,和相邻数比较,注意边界 1 class Solution { 2 public: 3 int searchInsert(vector& nums, int target) { 4 ... 阅读全文
posted @ 2015-06-14 11:58 影翕 阅读(165) 评论(0) 推荐(0)
摘要:题目意思:对两个递增链表进行归并排序思路:没什么好说的,二路归并 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ... 阅读全文
posted @ 2015-06-14 11:02 影翕 阅读(192) 评论(0) 推荐(0)
摘要:题目意思:二叉树中序遍历,结果存在vector中解题思路:迭代迭代实现: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6... 阅读全文
posted @ 2015-06-14 09:06 影翕 阅读(149) 评论(0) 推荐(0)
摘要:题目意思:二叉树先序遍历,结果存在vector中解题思路:1.递归(题目中说用递归做没什么意义,我也就贴贴代码吧) 2.迭代迭代实现: 1 class Solution { 2 public: 3 vector preorderTraversal(TreeNode* root) { ... 阅读全文
posted @ 2015-06-13 14:57 影翕 阅读(204) 评论(0) 推荐(0)