目录
1.最长连续序列
题目描述编辑
通过代码
2.移动零
题目描述
通过代码
3.盛最多水的容器
题目描述
通过代码
1.最长连续序列
题目描述
通过代码
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
//排序,相同字母跳过,两个变量前后对比连续序列
//考虑空数组
sort(nums.begin(),nums.end());
int size=nums.size();
if(size<=1)
return size;
int tmp=1;
int max=1;
for(int i=0;i<size-1;i++)
{
if(nums[i]==nums[i+1])
continue;
if(nums[i]+1==nums[i+1])
{
tmp++;
}
else
{
if(tmp>max)
max=tmp;
tmp=1;
}
}
if(max<tmp)
max=tmp;
return max;
}
};
2.移动零
题目描述
通过代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
//遇到0就记录下数量
int size=nums.size();
int i=0;
int j=0;
for(;i<size;i++)
{
if(nums[i]!=0)
{
nums[j]=nums[i];
j++;
}
}
for(j;j<size;j++)
nums[j]=0;
}
};
3.盛最多水的容器
题目描述
通过代码
class Solution {
public:
int maxArea(vector<int>& height) {
//需要考虑时间复杂度
int size=height.size();
int i=0;
int j=size-1;
int res=0;
while(i<j)
{
//这块要有很好的优化比较思路
res=height[i]<height[j]?
max(res,(j-i)*height[i++]):
max(res,(j-i)*height[j--]);
}
return res;
}
};