- 博客(5)
- 收藏
- 关注
原创 Leetcode53最大子序和 动态规划和分治法双解法
1.动态规划 这是这道题想起来最容易的做法,建立前缀和数组,每一个元素表示对应nums数组此元素作为结尾的子序和 class Solution { public: int maxSubArray(vector<int>& nums) { vector<int> dp(nums.size(),0); int maxn=nums[0]; if(nums.size()==1){ return nu
2020-09-24 21:21:50
259
原创 Leetcode 42.接雨水 两种解法
解法1:栈(一次遍历) stk存储比当前高度更低或相等的高度 cur代表当前高度之前的最低点(stk.pop) cur高度上储水量为cur*min(stk.top,height[i]) 判断是否会在边上,留不住水(cur,stk.empty()) stk.empty(),入栈 class Solution { public: int trap(vector<int>& height) { int i,j,t,h,sum=0,cur; stack<
2020-09-11 13:00:22
140
原创 Leetcode25.K 个一组翻转链表
经典dummyhead题目 每隔n个节点建立一个dummyhead,使用头插法进行连接以倒置顺序,后连接在前段的后面 #include<iostream> #include<vector> using namespace std; struct ListNode { int val; ListNode *next; ListNode() : val(0), next(NULL) {} ListNode(int x) : val(x), nex.
2020-09-10 13:22:28
147
原创 leetcode寻找两个正序数组的中位数
双指针快乐解决 #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxn 100 double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){ int *a,i,j,k; double r; a=(int *)malloc(sizeof(int)*(nums1Size+num
2020-05-21 18:08:35
231
原创 Leetcode3无重复字符的最长子串,纯c
Leetcode3无重复字符的最长子串 动态规划 dp[i]=dp[i-1]+1;i字符未出现过或是前一个相同字符的距离超过了以前一个字符为结尾的字符串的长度 dp[i]=i-a[t];与其哪一个相同字符的距离较近 #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxn 200 int lengthOfLongestSubstring(char * s){ int t,index=
2020-05-21 14:11:17
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅