LeetCode
游马
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
714. 买卖股票的最佳时机含手续费
class Solution {public: int maxProfit(vector<int>& prices, int fee) { vector<vector<int>> dp(prices.size() + 1, vector<int>(2)); dp[0][1] = INT_MIN; ...原创 2019-12-21 13:57:43 · 182 阅读 · 0 评论 -
138. 复制带随机指针的链表
/*// Definition for a Node.class Node {public: int val; Node* next; Node* random; Node() {} Node(int _val, Node* _next, Node* _random) { val = _val; next = ...原创 2019-08-30 10:02:55 · 144 阅读 · 0 评论 -
134. 加油站
class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int cur_tank = 0, total_tank = 0; int start_pos = 0; for (int ...原创 2019-08-30 10:02:51 · 147 阅读 · 0 评论 -
123. 买卖股票的最佳时机 III
class Solution {public: int maxProfit(vector<int>& prices) { vector<vector<vector<int>>> dp(prices.size() + 1); for (int i = 0; i < dp.size(); +...原创 2019-08-30 10:02:46 · 141 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
class Solution {public: int maxProfit(vector<int>& prices) { int** dp = new int*[prices.size() + 1]; for (int i = 0; i < prices.size() + 1; ++i) { dp[...原创 2019-08-30 10:02:42 · 147 阅读 · 0 评论 -
121. 买卖股票的最佳时机
class Solution {public: int maxProfit(vector<int>& prices) { int** dp = new int*[prices.size() + 1]; for (int i = 0; i < prices.size() + 1; ++i) { dp[...原创 2019-08-30 10:02:33 · 146 阅读 · 0 评论 -
120. 三角形最小路径和
class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { if (triangle.empty()) return 0; int n = triangle.size(); int* res = new int[n]...原创 2019-08-30 10:02:25 · 160 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for a binary tree no...原创 2019-08-29 09:27:17 · 159 阅读 · 0 评论 -
92. 反转链表 II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-08-29 09:27:13 · 152 阅读 · 0 评论 -
86. 分隔链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-08-29 09:27:08 · 167 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-08-29 09:27:05 · 167 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-08-29 09:26:59 · 152 阅读 · 0 评论 -
70. 爬楼梯
class Solution {public: int climbStairs(int n) { if (n == 0) return 0; if (n == 1) return 1; if (n == 2) return 2; int resNMinus1 = 2,resNMinus2=1,resN; ...原创 2019-08-29 09:26:56 · 167 阅读 · 0 评论 -
139. 单词拆分
class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { if (s.empty() || wordDict.empty()) return false; unordered_set<string> dic; ...原创 2019-08-30 10:03:06 · 240 阅读 · 0 评论 -
141. 环形链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasC...原创 2019-08-30 10:03:16 · 152 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期
class Solution {public: int maxProfit(vector<int>& prices) { vector<vector<int>> dp(prices.size() + 1, vector<int>(2)); dp[0][1] = INT_MIN; ...原创 2019-12-21 13:57:52 · 151 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变
class NumArray {public: int* dp; NumArray(vector<int>& nums) { if(nums.empty()) return; dp=new int[nums.size()]{0}; for(int i=0;i<nums.size();++i){ ...原创 2019-12-21 13:58:07 · 160 阅读 · 0 评论 -
300. 最长上升子序列
class Solution {public: int lengthOfLIS(vector<int>& nums) { if (nums.empty()) return 0; int maxLength = 1; int* dp = new int[nums.size()]; for (int i...原创 2019-12-21 13:58:11 · 170 阅读 · 0 评论 -
279. 完全平方数
class Solution {public: int numSquares(int n) { int* dp = new int[n + 1]; for (int i = 0; i <= n; ++i) { dp[i] = i; for (int j = 1; j*j <= i; ++j)...原创 2019-12-21 13:58:10 · 161 阅读 · 0 评论 -
221. 最大正方形
class Solution {public: int maximalSquare(vector<vector<char>>& matrix) { if (matrix.empty() || matrix[0].empty()) return 0; vector<vector<int>> dp(...原创 2019-12-21 13:58:24 · 267 阅读 · 0 评论 -
217. 存在重复元素
class Solution {public: bool containsDuplicate(vector<int>& nums) { if(!nums.size()) return false; sort(nums.begin(),nums.end()); vector<int>::...原创 2019-12-21 13:58:16 · 231 阅读 · 0 评论 -
213. 打家劫舍 II
class Solution {public: int rob(vector<int>& nums) { if (nums.empty()) return 0; if(nums.size()==1) return nums[0]; int* dp = new int[nums.size() + 1]; ...原创 2019-12-21 13:57:34 · 139 阅读 · 0 评论 -
198. 打家劫舍
class Solution {public: int maxProfit_inf(vector<int>& prices) { int** dp = new int*[prices.size() + 1]; for (int i = 0; i < prices.size() + 1; ++i) { ...原创 2019-12-21 13:57:23 · 193 阅读 · 0 评论 -
152. 乘积最大子序列
class Solution {public: int max(int a, int b, int c) { int tmp; if (a > b) tmp = a; else tmp = b; if (tmp > c) return tmp; else return c; } ...原创 2019-12-21 13:58:25 · 240 阅读 · 0 评论 -
143. 重排链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void reor...原创 2019-08-30 10:03:21 · 165 阅读 · 0 评论 -
64. 最小路径和
class Solution {public:int minPathSum(vector<vector<int>>& grid) { if (grid.empty()) return 0; int res[1000]; int rowCount = grid.size(); int colCount = grid[0].size(); res[0...原创 2019-08-29 09:26:52 · 267 阅读 · 0 评论 -
63. 不同路径 II
class Solution {public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { if (obstacleGrid.empty()) return 0; unsigned int res[101][101]; memset(res, 0, sizeof(r...原创 2019-08-29 09:26:47 · 164 阅读 · 0 评论 -
12. 整数转罗马数字
class Solution {public: string intToRoman(int num) { unordered_map<int, char> romanChar; romanChar[1] = 'I'; romanChar[5] = 'V'; romanChar[10] = 'X'; romanChar[50] = 'L'; romanC...原创 2019-08-14 17:37:23 · 113 阅读 · 0 评论 -
9. 回文数
class Solution {public: bool isPalindrome(int x) { if(x<0) return false; int ori=x; int num=0; while(x){ int tmp=x%10; if(num > IN...原创 2019-08-14 17:36:14 · 153 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)
class Solution {public:int myAtoi(string str) { if (str == "") return 0; char* c = &str[0]; int num = 0; int pos = 1; while (*c == ' ') ++c; if (*c == '-') { pos = -1; ++c; } ...原创 2019-08-14 17:35:12 · 167 阅读 · 0 评论 -
7. 整数反转
class Solution {public: int reverse(int x) { int num=0; while(x){ int tmp=x%10; if (num > INT_MAX/10 || (num == INT_MAX / 10 && tmp > 7))...原创 2019-08-14 17:34:16 · 171 阅读 · 0 评论 -
3. 无重复字符的最长子串
class Solution {public: int lengthOfLongestSubstring(string s) { if(s=="") return 0; int maxLength=0; int left=0; unordered_set<char> maxStr; for...原创 2019-08-14 17:33:05 · 116 阅读 · 0 评论 -
2. 两数相加
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...原创 2019-08-14 17:31:31 · 126 阅读 · 0 评论 -
1. 两数之和
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> num_map; for(int i=0;i<nums.size();++i){ ...原创 2019-08-14 17:30:08 · 163 阅读 · 0 评论 -
15. 三数之和
class Solution {public:vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; if (nums.size() < 3) return res; sort(nums.begin(), nums...原创 2019-08-14 17:29:06 · 138 阅读 · 0 评论 -
95. 不同的二叉搜索树 II
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */c...原创 2019-08-01 18:31:01 · 166 阅读 · 0 评论 -
91. 解码方法
class Solution {public:int numDecodings(string s) { if (s.empty() || s[0]=='0') return 0; int* dp=new int[s.length()+1]; dp[0] = dp[1] = 1; for (int i = 1; i < s.length(); ++i) { if (s[i...原创 2019-08-01 18:30:16 · 167 阅读 · 0 评论 -
53. 最大子序和
int maxSubArray(vector<int>& nums) { if (nums.empty()) return 0; int maxSum=0x80000000, sum=0; for (int i = 0; i < nums.size(); ++i) { sum += nums[i]; maxSum = maxSum > sum ?...原创 2019-08-01 18:29:50 · 113 阅读 · 0 评论 -
10. 正则表达式匹配
bool isMatch(string s, string p) { if(p.empty()) return s.empty(); if(p.length()>1 && p[1]=='*'){ return isMatch(s,p.substr(2)) || (!s.empty() && (p[0...原创 2019-08-01 18:28:11 · 307 阅读 · 0 评论 -
13. 罗马数字转整数
class Solution {public: int romanToInt(string s) { if (s == "") return 0; unordered_map<string, int> m = { { "I", 1 },{ "IV", 4 },{ "IX", 9 },{ "V", 5 },{ "X", 10 },{ "XL", 40 ...原创 2019-08-14 17:38:14 · 134 阅读 · 0 评论
分享