LeetCode
永仁永仁
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 50. Pow(x, n)
快速幂 本题要求x的n次方,n很大,所以O(n)的解法肯定不行,只能考虑O(logn)复杂度的解法。 我们可以想到,若nnn为偶数,xn=(x2)n/2xn=(x2)n/2x^n=(x^2)^{n/2},若nnn为奇数,则xn=x⋅x(n−1)/2xn=x·x(n−1)/2x^n=x·x^{(n-1)/2},由此可以想到由递归方式来解决。 代码: class Solution { pu...原创 2018-07-07 01:00:07 · 254 阅读 · 0 评论 -
LeetCode 70. Climbing Stairs
递推公式:dp[i]=dp[i−1]+dp[i−2];dp[0]=1,dp[1]=1dp[i]=dp[i−1]+dp[i−2];dp[0]=1,dp[1]=1dp[i] = dp[i-1]+dp[i-2];dp[0]=1,dp[1]=1 class Solution { public: int climbStairs(int n) { vector<int>...原创 2018-09-07 22:01:00 · 193 阅读 · 0 评论 -
LeetCode 746. Min Cost Climbing Stairs
递推公式:dp[i]=min(dp[i−1]+cost[i],dp[i−2]+cost[i])dp[i]=min(dp[i−1]+cost[i],dp[i−2]+cost[i])dp[i] = min(dp[i-1]+cost[i] , dp[i-2] + cost[i]) class Solution { public: int minCostClimbingStairs(vector...原创 2018-09-07 22:31:37 · 242 阅读 · 0 评论 -
LeetCode 53. Maximum Subarray
最大连续子序列和 class Solution { public: int maxSubArray(vector<int>& nums) { int l = nums.size(); vector<int> dp; dp.push_back(max(0,nums[0])); int ans...原创 2018-09-05 23:00:49 · 184 阅读 · 0 评论 -
LeetCode 198. House Robber
class Solution { public: int rob(vector<int>& nums) { vector<int> dp; int n = nums.size(); dp.push_back(0); int ans = 0; for(int i=0;i<n;...原创 2018-09-09 22:09:55 · 208 阅读 · 0 评论 -
LeetCode 303. Range Sum Query - Immutable
class NumArray { public: vector<int> dp; NumArray(vector<int> nums) { dp.clear(); int n = nums.size(); if(n==0) return; dp.push_back(nums[0]); ...原创 2018-09-16 23:13:55 · 216 阅读 · 0 评论 -
LeetCode 910. Smallest Range II
最小差值 II 这题感觉还是挺考验思维的。 首先可以想到,差值的最大值就是A中最大和最小值之间的差,经过我们优化后的结果肯定是小于等于这个值的。 然后我们再可以想到,我们优化的话对于A中最大值肯定是减去K,对A中最小值肯定是加上K。首先我们对A排序,然后再推广的话就可以想到:若 A[i]是做减操作,A[i]后的元素肯定也是做减操作,这样可以保证最小值的范围不会变大。同理若A[i]是做加操作,A[i...原创 2018-10-06 15:03:06 · 424 阅读 · 0 评论 -
LeetCode 168. Excel Sheet Column Title
class Solution { public: string convertToTitle(int n) { string res = ""; string table[] ={"Z","A","B","C","D","E&qu原创 2018-10-07 11:11:25 · 389 阅读 · 2 评论
分享