
leetcode
stefanharden
这个作者很懒,什么都没留下…
展开
-
Jump Game 跳台阶问题
class Solution {public: bool canJump(int A[], int n) { int reach=0; for(int i=0;i { if(i { reach=max(reach,i+A[i]);原创 2014-01-21 10:43:25 · 418 阅读 · 0 评论 -
Best Time to Buy and Sell Stock II 买卖股票最好的时间II
class Solution {public://贪心法,低进高出,把所有正的价格差价相加起来。 int maxProfit(vector &prices) { int n=prices.size(); if(n return 0; int profit=0; int minbuy=prices[0]; for(int原创 2014-01-21 10:49:03 · 394 阅读 · 0 评论 -
Interleaving String 交叉的字符串
class Solution {public: bool isInterleave(string s1, string s2, string s3) { int m=s1.size(); int n=s2.size(); int k=s3.size(); if(m+n!=k) return fa原创 2014-01-21 11:18:09 · 525 阅读 · 0 评论 -
Minimum Path Sum 最小路径和
class Solution {public: int minPathSum(vector > &grid) {int m=grid.size();int n=grid[0].size();vector> dp(m,vector(n,0));dp[0][0]=grid[0][0];for(int i=1;i{ dp[i][0]=dp[i-1][0]+原创 2014-01-21 14:43:55 · 414 阅读 · 0 评论 -
Word Break 分词
class Solution {public: bool wordBreak(string s, unordered_set &dict) { int n=s.size(); vector dp(n+1,false); //dp[i]表示以第一个字符开始的,长度为i的substring 是不是可以拆分成单词,从左往右推进,每到一个原创 2014-01-21 15:10:00 · 490 阅读 · 0 评论 -
Clone Graph 克隆图
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */class Solution {原创 2014-01-21 15:15:30 · 406 阅读 · 0 评论 -
Pow(x,n) x的n次方
class Solution {public: double pow(double x, int n) { if(n==0) return 1; if(n==1) return x; double tmp=pow(x,abs(n/2)); if(n>0) {原创 2014-01-21 10:39:35 · 609 阅读 · 0 评论 -
Container With Most Water 盛最多的水
class Solution {public: int maxArea(vector &height) { int l=0; int r=height.size()-1; int ret=0; int area=0; while(l { area=mi原创 2014-01-21 10:56:37 · 429 阅读 · 0 评论 -
Best Time to Buy and Sell Stock III 买卖股票的最好时间
class Solution {public: int maxProfit(vector &prices) { int n=prices.size(); if(n return 0; vector left(n,0); vector right(n,0); int minbuy原创 2014-01-21 11:12:33 · 617 阅读 · 0 评论 -
Edit Distance 编辑距离
class Solution {public: int minDistance(string word1, string word2) { int m=word1.size(); int n=word2.size(); vector> dp(m+1,vector(n+1)); for(int i=0;i原创 2014-01-21 14:46:42 · 440 阅读 · 0 评论 -
Decode Ways 编码的方式
class Solution {public: int numDecodings(string s) { int n=s.size(); if(n==0) return 0; vector dp(n,0); if(s[0]=='0') return 0; if原创 2014-01-21 14:49:55 · 425 阅读 · 0 评论 -
Generate Parentheses 产生括号的次数
class Solution {public: void generate(int n,int l,int r,string tmp,vector&ret) { if(l==n&&r==n) { ret.push_back(tmp); return; }原创 2014-01-21 10:18:45 · 431 阅读 · 0 评论 -
Word Search 单词的查找
class Solution {public: bool DFS(vector>&board,string word,int step,int x,int y,vector> &visited) { if(step==word.size()) { return true; }原创 2014-01-21 10:36:03 · 658 阅读 · 0 评论 -
Longest Substring Without Repeating Characters 不含重复字符的最长子串
class Solution {public: int lengthOfLongestSubstring(string s) { int ASCII_MAX=26; int last[ASCII_MAX]; fill(last,last+ASCII_MAX,-1); int len=0; int原创 2014-01-21 10:52:02 · 346 阅读 · 0 评论 -
Triangle 三角形从顶到底的最短路径
class Solution {public: int minimumTotal(vector > &triangle) { int m=triangle.size(); for(int i=m-2;i>=0;i--) {//triangle[i][j表示从底边出发,到达i,j点的最短路径的长度 for(原创 2014-01-21 11:01:54 · 505 阅读 · 0 评论 -
Distinct Subsequences 字符串在另一个字符串中出现的次数
class Solution {public: int numDistinct(string S, string T) { int m=S.size(); int n=T.size(); vector> dp(m+1,vector(n+1)); dp[0][0]=1; //dp[i][j]表示T原创 2014-01-21 15:01:05 · 341 阅读 · 0 评论 -
Reverse Integer 翻转整数
class Solution {public: int reverse(int x) { if(x==0) return 0; int flag=x>0?1:-1; int t=abs(x); int ret=0; while(t>0) { int t原创 2014-01-21 19:10:25 · 453 阅读 · 0 评论 -
Palindrome Number 判断一个整数是否是回文数
class Solution {public: bool isPalindrome(int x) { if(x return false; if(x==0) return true; int ret=0; int tmp=0; int t=x;原创 2014-01-21 19:12:18 · 493 阅读 · 0 评论 -
Multiply Strings 两个字符串的乘法
class Solution {public: string multiply(string num1, string num2) { int data[100000]={0}; reverse(num1.begin(),num1.end()); reverse(num2.begin(),num2.end());原创 2014-01-21 20:43:02 · 500 阅读 · 0 评论 -
Divide Two Integers 两个整数相除
class Solution {public: int divide(int dividend, int divisor) { bool sign=(dividend0)||(dividend>0&&divisor long long a=abs((double)dividend); long long b=abs((doubl原创 2014-01-21 20:55:07 · 360 阅读 · 0 评论 -
Spiral Matrix 螺旋矩阵I
class Solution {public: vector spiralOrder(vector > &matrix) { int minX,minY,maxX,maxY,x,y; vector ret; if(matrix.size()==0) return ret; minX=minY=0; maxX=matrix.size()-1; maxY原创 2014-01-21 20:50:04 · 408 阅读 · 0 评论 -
Max Points on a Line 同一条直线上最大数量的点
/** * Definition for a point. * struct Point { * int x; * int y; * Point() : x(0), y(0) {} * Point(int a, int b) : x(a), y(b) {} * }; */class Solution {public:原创 2014-01-21 20:58:11 · 411 阅读 · 0 评论 -
Insert Interval 插入区间
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */原创 2014-01-21 19:15:31 · 442 阅读 · 0 评论 -
Merge Intervals 归并区间
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */原创 2014-01-21 19:18:42 · 406 阅读 · 0 评论 -
Minimum Window Substring 包含串T的在串S中的最小窗口
class Solution {public: string minWindow(string S, string T) { int snum=S.size(); int tnum=T.size(); int minbegin=0; int minend=0; int minlength=snu原创 2014-01-21 20:40:58 · 616 阅读 · 0 评论 -
Pascal’s Triangle 帕斯卡三角形I
class Solution {public: vector > generate(int numRows) { vector> ret; if(numRows==0) return ret; vector tmp; tmp.push_back(1); ret.push_bac原创 2014-01-21 20:45:30 · 442 阅读 · 0 评论 -
Pascal's Triangle II 帕斯卡三角形II
class Solution {public: vector getRow(int rowIndex) { vector ret; for(int i=0;i { ret.push_back(1); for(int j=i-1;j>0;j--) {原创 2014-01-21 20:48:04 · 369 阅读 · 0 评论 -
Spiral Matrix II 螺旋矩阵II
class Solution {public: vector > generateMatrix(int n) { vector> matrix(n,vector(n)); int begin=0; int end=n-1; int num=1; while(begin {原创 2014-01-21 20:52:56 · 353 阅读 · 0 评论 -
Remove Duplicates from Sorted Array 删除数组中的重复元素
class Solution {public: int removeDuplicates(int A[], int n) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for eac原创 2014-01-18 21:13:10 · 486 阅读 · 0 评论 -
Remove Duplicates from Sorted Array II 删除重复元素,重复元素最多允许出现两次
class Solution {public: int removeDuplicates(int A[], int n) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for eac原创 2014-01-18 21:19:36 · 508 阅读 · 0 评论 -
Search in Rotated Sorted Array 在旋转的数组中查找元素
class Solution {public: int search(int A[], int n, int target) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for e原创 2014-01-18 21:28:33 · 406 阅读 · 0 评论 -
3Sum Closest 三数最接近
class Solution {public: int threeSumClosest(vector &num, int target) { int result=0; if(num.size()==3) return num[0]+num[1]+num[2]; int mincloset =INT_MAX; s原创 2014-01-19 11:13:33 · 449 阅读 · 0 评论 -
Remove Element 删除元素
class Solution {public: int removeElement(int A[], int n, int elem) { int index=0; int length=0; for(int i=0;i { if(A[i]!=elem)原创 2014-01-19 11:28:02 · 629 阅读 · 0 评论 -
Rotate Image 旋转图像
class Solution {public: void rotate(vector > &matrix) { int n=matrix.size(); for(int i=0;i { for(int j=0;j { swap(matrix[i][j原创 2014-01-19 15:44:09 · 365 阅读 · 0 评论 -
Remove Nth Node From End of List 删除链表的倒数第n个结点
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Li原创 2014-01-19 17:09:19 · 446 阅读 · 0 评论 -
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: Li原创 2014-01-19 19:25:40 · 356 阅读 · 0 评论 -
Copy List with Random Pointer 带随机指针链表的复制
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Li原创 2014-01-19 19:34:39 · 398 阅读 · 0 评论 -
Linked List Cycle 链表是否有环
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bo原创 2014-01-19 19:38:53 · 351 阅读 · 0 评论 -
LRU Cache 最近最少使用缓存的设计
class LRUCache{public: LRUCache(int capacity) { cap=capacity; head=new ListNode(0,0); tail=new ListNode(0,0); head->left=NULL; head->right=tail;原创 2014-01-19 19:50:49 · 533 阅读 · 0 评论 -
Longest Palindromic Substring 最长回文子串
class Solution {public: string longestPalindrome(string s) { size_t n=s.size(); bool dp[1000][1000]; int startpos=0; int maxlen=1; for(size_t i=0;i原创 2014-01-19 20:30:02 · 434 阅读 · 0 评论