• 【LeetCode】011 Container With Most Water


    题目:

    Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

    Note: You may not slant the container and n is at least 2.

    题解:

      暴力解即可,注意这个面积是长方形的,我刚开始犯傻给写成梯形了。。。两个思路:两个for循环遍历,结果就是TLE了。另一个就是头尾指针遍历法,时间复杂度降为O(n).以后遇到这种需要遍历的,要先想到头尾指针法,而不是两个for循环(其实也是双指针,只是位置不一样)。同时,与之前遇到的数组问题一样,小幅度的优化就是在大循环内就跳过重复项

    Solution 1 (TLE)

    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int area = 0, n = height.size();
            for(int i=0; i<n-1; i++) {
                for(int j=i+1; j<n; j++) {
                    int new_area = (j-i)*min(height[i], height[j]);
                    if(height[i]==0 || height[j]==0) new_area = 0;
                    area = max(area, new_area);
                }
            }    
            return area;
        }
    };

      

    Solution 2

    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int area = 0, i = 0, j = height.size() - 1;
            while (i < j) {
                area = max(area, min(height[i], height[j]) * (j - i));
                height[i] < height[j] ? ++i : --j;
            }
            return area;
        }
    };

    Solution 3

    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int area = 0;
            int i = 0, j = height.size() - 1;
            while (i < j) {
                 int h = min(height[i], height[j]);
                area = max(area, (j - i) * h);
                while (height[i] <= h && i < j) i++;
                while (height[j] <= h && i < j) j--;
            }
            return area;
        }
    }; 
  • 相关阅读:
    linear_regression为例讲解神经网络实现基本步骤以及解读nn.Linear函数
    setting up plugin bias_act_plugin stylegan2ada 卡在这里一直没有响应解决方案!百分比解决
    本地线程变量【原】
    多线程idm下载器
    细碎知识【eclipse 的快捷键、随机数、格式化小数、汉诺塔】
    像追女神一样学好java~
    学习Spring5必知必会(7)~Spring tx
    事务●必知必会
    区间DP
    逆元
  • 原文地址:https://www.cnblogs.com/Atanisi/p/6718649.html
Copyright © 2020-2023  润新知