力扣 11 乘最多水的容器 9 回文数
作者:互联网
11 乘最多水的容器 双指针 如果用双层for超时
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器。
示例 1:
输入:[1,8,6,2,5,4,8,3,7]
输出:49
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例 2:
输入:height = [1,1]
输出:1
示例 3:
输入:height = [4,3,2,1,4]
输出:16
示例 4:
输入:height = [1,2,1]
输出:2
提示:
n == height.length
2 <= n <= 105
0 <= height[i] <= 104
class Solution {
public:
int maxArea(vector<int>& height) {
int ans=0;
int r=0,l=height.size()-1;
while(l>r)
{
int s=(l-r)*(min(height[r],height[l])); //面积S
ans=max(s,ans); //与现有的最优解比较
if(height[r]<height[l]) /*为什么要移动较小边的下标呢 因为无论移动哪一条边对应的下
标 s中的(l-r)是不会变的 而
(min(height[r],height[l]))可能会变得更大*/
{
r++;
}
else l--;
}
return ans;
}
};
难度简单1764收藏分享切换为英文接收动态反馈
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121
是回文,而 123
不是。
示例 1:
输入:x = 121 输出:true
示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101 输出:false
class Solution {
public:
bool isPalindrome(int x) {
string s=to_string(x); //to_string 将数字转换成字符串
string a=s;
reverse(s.begin(),s.end());//reverse 反转字符串
if(s==a)
{
return true;
}
else return false;
}
};
提示:
-231 <= x <= 231 - 1
标签:11,示例,int,height,力扣,121,最多水,输入,回文 来源: https://blog.csdn.net/qq_64265991/article/details/122513937