
leetcode
文章平均质量分 61
mikefan1991
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 39: Combination Sum
class Solution {public: vector> combinationSum(vector& candidates, int target) { vector > res; vector set; sort(candidates.begin(),candidates.end()); helper(candid原创 2015-07-08 15:34:41 · 178 阅读 · 0 评论 -
leetcode 40: Combination Sum II
class Solution {public: vector> combinationSum2(vector& candidates, int target) { vector > res; vector set; sort(candidates.begin(),candidates.end()); helper(candi原创 2015-07-08 15:58:56 · 201 阅读 · 0 评论 -
leetcode 27: Remove Element
class Solution {public: int removeElement(vector& nums, int val) { if(nums.empty()) return 0; if(nums.size()==1) { if(nums[0]==val)原创 2015-07-03 12:05:13 · 182 阅读 · 0 评论 -
leetcode 14: Longest Common Prefix
class Solution {public: string longestCommonPrefix(vector& strs) { string res; if(strs.size()==0) return res; int minlen=strs[0].length(); int minidx;原创 2015-07-03 11:52:16 · 195 阅读 · 0 评论 -
leetcode 21: Merge Two Sorted Lists
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* me原创 2015-07-03 11:59:44 · 169 阅读 · 0 评论 -
leetcode 18: 4Sum
class Solution {public: vector> fourSum(vector& nums, int target) { sort(nums.begin(),nums.end()); vector set; vector > res; if(nums.size()<4) return r原创 2015-07-03 11:56:05 · 175 阅读 · 0 评论 -
leetcode 19: Remove Nth Node From End of List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* re原创 2015-07-03 11:57:21 · 230 阅读 · 0 评论 -
leetcode 29: Divide Two Integers
class Solution {public: int divide(int dividend, int divisor) { if(divisor==0||dividend==INT_MIN&&divisor==-1) return INT_MAX; long long a=labs(dividend); long原创 2015-07-03 12:07:02 · 233 阅读 · 0 评论 -
leetcode 10: Regular Expression Matching
DP method:bool isMatch(char* s, char* p) { const int m=strlen(s), n=strlen(p); bool dp[m+1][n+1]; for(int i=0;i for(int j=0;j dp[i][j]=0; dp[0][0]=true;原创 2015-07-03 11:33:20 · 202 阅读 · 0 评论 -
leetcode 15: 3Sum
class Solution {public: vector> threeSum(vector& nums) { vector set; vector > res; if(nums.size()<3) return res; sort(nums.begin(),nums.end());原创 2015-07-03 11:53:23 · 256 阅读 · 0 评论 -
leetcode 44: Wildcard Matching
DP algorithmThe time is too long which can still be optimizedclass Solution {public:bool isMatch(string s, string p) { if(p=="*") return true; if(p.empty()&&!s.empty())原创 2015-07-26 12:00:43 · 193 阅读 · 0 评论 -
leetcode 20: Valid Parentheses
class Solution {public: bool isValid(string s) { stack st; for(int i=0;i<s.length();i++) { if(s[i]=='('||s[i]=='['||s[i]=='{') st.push(s[i]);原创 2015-07-03 11:58:20 · 215 阅读 · 0 评论 -
leetcode 22: Generate Parentheses
class Solution {public: vector generateParenthesis(int n) { string s; vector res; helper(n,n,s,res); return res; } void helper(int left,int right,string s,原创 2015-07-03 12:00:47 · 213 阅读 · 0 评论 -
leetcode 24: Swap Nodes in Pairs
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* sw原创 2015-07-03 12:02:51 · 197 阅读 · 0 评论 -
leetcode 16: 3Sum Closest
class Solution {public: int threeSumClosest(vector& nums, int target) { int res=target<0?INT_MAX+target:INT_MAX-target; sort(nums.begin(),nums.end()); for(int i=0;i<nums.s原创 2015-07-03 11:54:24 · 301 阅读 · 0 评论 -
leetcode 26: Remove Duplicates from Sorted Array
class Solution {public: int removeDuplicates(vector& nums) { if(nums.empty()) return 0; int res=1; int old=0; for(int i=1;i<nums.size();i++)原创 2015-07-03 12:04:38 · 232 阅读 · 0 评论 -
leetcode 37: Sudoku Solver
DFS method:class Solution {public: void solveSudoku(vector>& board) { solve(board); } bool solve(vector>& board){ int i,j; for(i=0;i<9;i++) {原创 2015-07-05 13:20:56 · 221 阅读 · 0 评论 -
leetcode 35: Search Insert Position
class Solution {public: int searchInsert(vector& nums, int target) { int left=0,right=nums.size()-1,mid=(left+right)/2; while(left!=right) { if(nums[mid]==targ原创 2015-07-04 12:01:51 · 192 阅读 · 0 评论 -
leetcode 28: Implement strStr()
class Solution {public: int strStr(string haystack, string needle) { int hlen=haystack.length(); int nlen=needle.length(); if(hlen<nlen) return -1; if(原创 2015-07-03 12:06:04 · 187 阅读 · 0 评论 -
leetcode 36: Valid Sudoku
class Solution {public: bool isValidSudoku(vector>& board) { bool row[9]; bool col[9]; bool block[9]; int num; for(int i=0;i<9;i++) { m原创 2015-07-04 16:03:02 · 161 阅读 · 0 评论 -
leetcode 17: Letter Combinations of a Phone Number
class Solution {public: vector letterCombinations(string digits) { map mp; mp['2']="abc"; mp['3']="def"; mp['4']="ghi"; mp['5']="jkl"; mp['6']="mno原创 2015-07-03 11:55:23 · 198 阅读 · 0 评论 -
leetcode 31: Next Permutation
class Solution {public: void nextPermutation(vector& nums) { for(int i=nums.size()-2;i>=0;i--) { if(nums[i]<nums[i+1])//find the place that the first ascending happens原创 2015-07-03 15:01:49 · 279 阅读 · 0 评论 -
leetcode 32: Longest Valid Parentheses
The O(n) method:class Solution {public: int longestValidParentheses(string s) { vector len(s.length(),false); stack st; int res=0; for(int i=0;i<s.length();i++)原创 2015-07-03 16:31:32 · 235 阅读 · 0 评论 -
leetcode 12: Integer to Roman
class Solution {public: string intToRoman(int num) { map mp; mp.insert(make_pair(1,"I")); mp.insert(make_pair(2,"II")); mp.insert(make_pair(3,"III")); mp.i原创 2015-07-03 11:44:42 · 234 阅读 · 0 评论 -
leetcode 49: Anagrams
class Solution {public: vector anagrams(vector& strs) { vector res; map mp; for(int i=0;i<strs.size();i++) { string temp=strs[i]; if(temp.s原创 2015-07-26 22:13:36 · 229 阅读 · 0 评论 -
leetcode 34: Search for a Range
binary search:class Solution {public: vector searchRange(vector& nums, int target) { int left=0,right=nums.size()-1,mid=(left+right)/2; vector res; res.push_back(-1);原创 2015-07-04 10:45:51 · 249 阅读 · 0 评论 -
leetcode 48: Rotate Image
class Solution {public: void rotate(vector>& matrix) { int size=matrix.size(); for(int i=0;i<size/2;i++) { for(int j=i;j<size-i-1;j++) {原创 2015-07-26 19:49:17 · 247 阅读 · 0 评论 -
leetcode 38: Count and Say
class Solution {public: string countAndSay(int n) { string s="1"; if(n==1) return s; string res; n--; while(n--) { res.clea原创 2015-07-05 22:58:44 · 235 阅读 · 0 评论 -
leetcode 50: Pow(x, n)
Loop through each bit of n instead of n times. Be careful with the case that when n is INT_MIN.class Solution {public: double myPow(double x, int n) { if(n==0) return 1;原创 2015-07-27 18:09:16 · 244 阅读 · 0 评论 -
leetcode 84: Largest Rectangle in Histogram
Use stackclass Solution {public: int largestRectangleArea(vector& height) { stack s; int res=0; height.push_back(0); for(int i=0;i<height.size();i++) {原创 2015-08-08 11:16:39 · 247 阅读 · 0 评论 -
leetcode 54: Jump Game
class Solution {public: bool canJump(vector& nums) { if(nums.size()==1) return true; if(nums[0]==0) return false; int max=-1; for(int i=0;i原创 2015-07-28 22:12:26 · 178 阅读 · 0 评论 -
leetcode 87: Scramble String
Learned the 3D dp algorithm from http://blog.sina.com.cn/leetcode.dp[i][j][l] means starting from i in s1 and j in s2, if they can be scambled with the length l. When l goes from 1 to len-max(i,j),转载 2015-08-09 00:50:22 · 273 阅读 · 0 评论 -
leetcode 83: Remove Duplicates from Sorted List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* de原创 2015-08-07 22:32:11 · 177 阅读 · 0 评论 -
leetcode 41: First Missing Positive
class Solution {public: int firstMissingPositive(vector& nums) { int i=0; while(i<nums.size()) { if(nums[i]!=i+1&&nums[i]>0&&nums[i]<nums.size()&&nums[i]!=nums原创 2015-07-14 23:42:42 · 245 阅读 · 0 评论 -
leetcode 52: Maximum Subarray
class Solution {public: int maxSubArray(vector& nums) { int max=nums[0]; int pre=nums[0]; for(int i=1;i<nums.size();i++) { if(nums[i]+pre>nums[i])原创 2015-07-28 18:37:28 · 185 阅读 · 0 评论 -
leetcode 42: Trapping Rain Water
class Solution {public: int trap(vector& height) { int begin; int res=0; for(begin=0;begin<height.size();begin++)//find the first non-zero position if(height[b原创 2015-07-15 22:49:29 · 208 阅读 · 0 评论 -
leetcode 85: Maximal Rectangle
Use the stack algorithm in the previous problem to find maximum area in every line of the matrix.class Solution {public: int maximalRectangle(vector>& matrix) { if(matrix.empty())原创 2015-08-08 15:18:38 · 253 阅读 · 0 评论 -
leetcode 86: Partition List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* pa原创 2015-08-08 16:08:38 · 239 阅读 · 0 评论 -
leetcode 82: Remove Duplicates from Sorted List II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* de原创 2015-08-07 23:36:20 · 458 阅读 · 0 评论 -
leetcode 155: Min Stack
Use another stack to save all minimum numbers. Then while popping, the corresponding minimum number can be popped, and the minimum number is always the top of that stack.class MinStack {public:转载 2015-08-22 11:40:55 · 268 阅读 · 0 评论