其他分享
首页 > 其他分享> > 力扣 11 乘最多水的容器 9 回文数

力扣 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;
    }
};

9. 回文数

难度简单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;


    }
};
提示:

标签:11,示例,int,height,力扣,121,最多水,输入,回文
来源: https://blog.csdn.net/qq_64265991/article/details/122513937