首页 > 其他 > 详细

盛最多水的容器

时间:2020-04-18 14:00:13      阅读:45      评论:0      收藏:0      [点我收藏+]

试题地址:https://leetcode-cn.com/problems/container-with-most-water/

试题思路:

1、暴力,时间太长,写起来也比较简单

2、贪心(个人感觉应该是),前后两个指针(i,j),同时移动,若height[i]>height[j],后指针前移(j--),保证此时的height[j]最大;height[i]<height[j]同理;

这样能够保证两边的边界都是较大的

试题代码:

技术分享图片
package main

import "fmt"

func main() {
    height := []int{1, 8, 6, 2, 5, 4, 8, 3, 7}
    fmt.Println(maxArea(height))
}

func maxArea(height []int) int {
    maxarea := 0
    i := 0
    j := len(height) - 1
    for j > i {
        if maxarea < min(height[i], height[j])*(j-i) {
            maxarea = min(height[i], height[j]) * (j - i)
        }
        fmt.Println(maxarea)
        if height[i] > height[j] {
            j--
        } else {
            i++
        }
    }

    return maxarea
}

func min(x, y int) int {
    if x > y {
        return y
    }
    return x
}
View Code

 

盛最多水的容器

原文:https://www.cnblogs.com/ybf-yyj/p/12724882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!