package main
import "fmt"
func main() {
var slice1 = make([]int, 0, 5)
fmt.Println("please input the No.1 array: ")
for i := 1; true; i++ {
var inputNum int
fmt.Printf("No.%d : ", i)
_, err := fmt.Scanf("%d", &inputNum)
if nil == err {
slice1 = append(slice1, inputNum)
} else {
break
}
}
printSlice(slice1)
fmt.Printf("The area is %d \n",maxArea(slice1))
}
func printSlice(x []int){
fmt.Printf("slice=%v len=%d cap=%d \n",x,len(x),cap(x))
}
func maxArea(height []int) int {
indexLeft, indexRight := 0, len(height) - 1
var ans int = 0
for ; indexLeft < indexRight; {
area := ((indexRight - indexLeft) * min(height[indexLeft], height[indexRight]))
ans = max(ans, area)
if height[indexLeft] < height[indexRight] {
indexLeft++
} else {
indexRight--
}
}
return ans
}
func min(x, y int) int {
if x <= y {
return x
} else {
return y
}
}
func max(x, y int) int {
if x >= y {
return x
} else {
return y
}
}
力扣算法——第11题——go语言
最新推荐文章于 2024-07-25 22:25:49 发布