leetcode
qian笑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
781
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#include<queue>#include<vector>#include<map>#include<unordered_map>#include<string>#include<cctype原创 2021-04-09 14:17:59 · 152 阅读 · 0 评论 -
数组11
题意:给定一个数组a表示每个位置的高,求出两个边界组成的最大容器 分析:使用双指针方法,area = min(a[left],a[right])*(right-left);初始时分别指向数字最左和最右,当间隔减少时,要使得area变大则其高度一定要变大,如果移动较高的那一边则其高度绝不会大于原先的高度。 int r = height.size()-1,l=0,ans = 0; while(l<r){ int area = min(height[r].原创 2021-03-31 13:59:02 · 155 阅读 · 0 评论 -
数组16
/*题意:找出给定数组中包含三个元素,其和最接近目标值的和分析:基于15的思路,在第二重利用双指针,如果sum=target,则直接返回答案,如果sum>target,则右指针左移,否则左指针右移************这里有一个精简代码的方法可以去记忆*auto update = [&](int cur){。}; * * * **/int threeSum(vector<int>& nums, int targ原创 2021-03-29 16:39:29 · 275 阅读 · 0 评论 -
数组15
题意:找出给定数组中包含三个元素,其和等于0且不重复的三元组分析:先对数组进行排序,用三重循环(分别为a、b、c)来暴力破解时注意为了笔面重复一定要把相应层的指针指向相同元素的最后一个。进一步的改进,可以在第三重循环时利用三数和为0进行改进,可以发现,第二重指针从小到达,而第三重指针从大到小,为了避免重复还应该将b<=c加入条件中注意:三元组不重复*/vector<vector<int>> threeSum(vector<int>& nums)原创 2021-03-29 15:45:18 · 189 阅读 · 0 评论 -
数组4
ouble findkmin(vector<int>& nums1, vector<int>& nums2, int k) { int n = nums1.size(); int m = nums2.size(); int p1 = 0, p2 = 0; while (true) { //边界情况 if (p1 == n) return nums2[p2 + k - 1]; if (p2 == m) return nums1[p1 +原创 2021-03-29 11:20:28 · 162 阅读 · 0 评论
分享