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 · 162 阅读 · 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 · 182 阅读 · 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 · 162 阅读 · 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 · 177 阅读 · 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 · 154 阅读 · 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 · 162 阅读 · 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 · 161 阅读 · 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 · 215 阅读 · 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 · 184 阅读 · 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 · 243 阅读 · 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 · 173 阅读 · 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 · 197 阅读 · 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 · 206 阅读 · 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 · 181 阅读 · 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 · 282 阅读 · 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 · 210 阅读 · 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 · 204 阅读 · 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 · 173 阅读 · 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 · 173 阅读 · 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 · 142 阅读 · 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 · 179 阅读 · 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 · 254 阅读 · 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 · 218 阅读 · 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 · 223 阅读 · 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 · 204 阅读 · 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 · 221 阅读 · 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 · 227 阅读 · 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 · 168 阅读 · 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 · 231 阅读 · 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 · 229 阅读 · 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 · 163 阅读 · 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 · 248 阅读 · 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 · 165 阅读 · 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 · 211 阅读 · 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 · 170 阅读 · 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 · 186 阅读 · 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 · 239 阅读 · 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 · 215 阅读 · 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 · 424 阅读 · 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 · 244 阅读 · 0 评论