11. 盛最多水的容器

雙指針,分別指向兩端,每次移動的是比較短的那段,關於這個的說法,leetcode有人做了證明,我這裏把這種算法理解爲貪心法。每次都是做的看似最大的選擇,只是猜測。 

 int maxArea(vector<int>& height) {

        int start(0), end(height.size()-1), max_a(0);

        int area_tmp(0);

        while(start < end){

            area_tmp = min(height[start], height[end]) * (end - start); 

            max_a = max_a > area_tmp ? max_a:area_tmp;

            if(height[start] > height[end]) end--;

            else start++;

        }

        return max_a;

   }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章