0
点赞
收藏
分享

微信扫一扫

LeetCode刷题笔记(六)

pipu 2022-01-20 阅读 113

双指针对撞 降低时间复杂度从 n^2 降到n

使用贪心算法 进一步提高效率

class Solution {
    public int mins(int i, int j){
        if(i>j) return j;
        return i;
    }
    public int maxArea(int[] height) {
       //读懂题意 本题本意 找出两个点 相距的距离
       //复杂度是n^2
       //看到题解后 我有了新的思路 但是我不能理解这是贪心 可能我不够贪心吧
       int max = 0;
       //两边同时向前 直至相遇为止 QUESTION 贪心算法的原因
       int i = 0;
       int temp;
       int j = height.length-1;
       while(i != j){
           temp = mins(height[i],height[j])*(j-i);
           if(temp > max){
               max = temp;
           }
           if(height[i]<height[j]){
               i++;
           }else{
               j--;
           }
       }
       return max;
    }
}
举报

相关推荐

0 条评论