• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • C語言重構【11】盛最多水的容器

    標簽: # 算法練習C語言版

    所有題目源代碼:Git地址

    題目

    給你 n 個非負整數 a1,a2,…,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。

    • 說明:你不能傾斜容器,且 n 的值至少為 2。

    在這里插入圖片描述

    • 圖中垂直線代表輸入數組 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。

    示例:
    輸入:[1,8,6,2,5,4,8,3,7]
    輸出:49

    方案:

    class Solution
    {
    public:
        int maxArea(vector<int> &height)
        {
            int left = 0, right = height.size() - 1;
            int area = 0;
    
            while(left<right){
                area = max(area,min(height[right],height[left])*(right-left));
                int newarea = (height[right]<height[left]?height[right]:height[left])*(right-left);
                area = area>newarea?area:newarea;
                if (height[left]<height[right])
                {
                    left++;
                }
                else{
                    right--;
                }
            }
            return area;
        }
    };
    
    復雜度計算
    • 時間復雜度:O(n)
    • 空間復雜度:O(1)
    版權聲明:本文為symuamua原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/symuamua/article/details/108648389

    智能推薦

    leetcode#11盛最多水的容器(C語言實現)

    leetcode#11盛最多水的容器(C語言實現) 題目描述:給你 n 個非負整數 a1,a2,…,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 說明:你不能傾斜容器,且 n 的值至少為 2。 示例: 輸入:[1,8,6,...

    LeetCode第11題盛最多水的容器C語言實現

    LeetCode第11題盛最多水的容器C語言實現 leetcode原題地址 題目描述 示例: 輸入:[1,8,6,2,5,4,8,3,7] 輸出:49 題解 1.暴力**方法 把所有可能的結果求出來,返回最大的值,代碼如下: 執行結果如下: 該算法時間復雜度為O(n^2) 2.雙指針法 運行結果如下: 該算法時間復雜為O(n) 雙指針法總結: 從最左邊一個元素和最右邊一個元素向中間遞歸求面積,如果...

    LeetCode:11. Container With Most Water 盛最多水的容器(C語言)

    題目描述: 給定 n 個非負整數 a1,a2,…,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 說明:你不能傾斜容器,且 n 的值至少為 2。 圖中垂直線代表輸入數組 [1,8,6,2,5,4,8,3,7]。在此情況下,容...

    【C語言刷LeetCode】11. 盛最多水的容器(M)

    [ 給定 n 個非負整數 a1,a2,...,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 說明:你不能傾斜容器,且 n 的值至少為 2。 圖中垂...

    LeetCode:盛最多水的容器【11】

    LeetCode:盛最多水的容器【11】 題目描述 給定 n 個非負整數 a1,a2,...,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸...

    猜你喜歡

    11. 盛最多水的容器

    一、題目 給定 n 個非負整數 a1,a2,...,an,每個數代表坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 說明:你...

    11. 盛最多水的容器

                                          11. 盛最多水的容器   給定 n 個非負整數 a1,a2,...,an,每個數代...

    3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習

    3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 自學資源 作業內容 1、基本操作演練【建議做】 天空盒的制作: 地圖的制作: 整體效果: 2、編程實踐 項目要求: 項目結構: 代碼詳解: Actions: ISSActionCallback.cs SSAction.cs SSAction...

    FlycoTabLayout 的使用

    FlycoTabLayout 一個Android TabLayout庫,目前有3個TabLayout SlidingTabLayout:參照PagerSlidingTabStrip進行大量修改. 新增部分屬性 新增支持多種Indicator顯示器 新增支持未讀消息顯示 新增方法for懶癌患者 CommonTabLayout:不同于SlidingTabLayout對ViewPager依賴,它是一個不...

    爬蟲項目實戰八:爬取天氣情況

    爬取天氣情況 目標 項目準備 接口分析 代碼實現 效果顯示 寫入本地 目標 根據天氣接口,爬取接下來一周的天氣情況。 項目準備 軟件:Pycharm 第三方庫:requests,BeautifulSoup,csv 接口地址:http://api.k780.com:88/?app=weather.future&weaid=城市名&appkey=10003&sign=b59bc...

    精品国产乱码久久久久久蜜桃不卡