当前位置:网站首页>笔试面试题目:盛水最多的容器
笔试面试题目:盛水最多的容器
2020-11-08 10:30:00 【osc_1ajf1srl】
原文发表于:
今天周末,来看G公司的一道面试题:
求max{|i-j|*min{a[i], a[j]}}的值,其中a是正整数数组,i和j的区间为[0, n-1].
这其实就是leetcode中的“盛水最多的容器”,如下:
鲁迅说:暴力可以解决一切问题。
胡适说:暴力能解决的问题,都不是问题。
因为i和j的可能性是有限组合,所以暴力算法能得到结果,但无法通过面试。
用动态规划吗?貌似也不好动态规划。
我们可以采用双指针,分别指向头尾,计算出盛水值。然后向中间搜索,尝试找出更大的盛水可能性。
木桶理论告诉我们:对于两块确定的盛水挡板而言,盛水的多少是由短板决定的。
所以,在向中间搜索时,从短板侧向中间移动指针,才有可能产生更大的盛水值。
这是一个核心结论。
至于代码,很简单,来看下:
func maxArea(a []int) int {
n := len(a)
if n < 2 {
return 0
}
if n == 2 {
return min(a[1], a[0])
}
max := min(a[n - 1], a[0]) * (n - 1)
i := 0
j := n - 1
for i < j {
if a[i] < a[j] {
i++
}else {
j--
}
area := min(a[i], a[j]) * (j - i)
if area > max {
max = area
}
}
return max
}
func min(x, y int) int {
if x < y {
return x
}
return y
}
结果:
该算法能正常通过面试,祝大家获得自己心仪的offer.
周末愉快。
版权声明
本文为[osc_1ajf1srl]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4272693/blog/4707996
边栏推荐
- iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】
- “1024”征文活动结果新鲜出炉!快来看看是否榜上有名?~~
- Flink的sink实战之一:初探
- Flink's sink: a preliminary study
- 5g/4g工业无线路由器
- Mate 40 series launch with Huawei sports health service to bring healthy digital life
- 维图PDMS切图软件
- C++在C的基础上改进了哪些细节
- [data structure Python description] use hash table to manually implement a dictionary class based on Python interpreter
- ASP.NET A complete solution based on exception handling in MVC
猜你喜欢
随机推荐
Function periodic table filter value selectedvalue
Cloud alibabab notes come out, the whole network detailed explanation only this one hand is slow
SQL Server 2008R2 18456 error resolution
Six key points of data science interview
python学习 day1——基础学习
【总结系列】互联网服务端技术体系:高性能之数据库索引
Mate 40 series launch with Huawei sports health service to bring healthy digital life
Shiyou's numerical analysis assignment
“1024”征文活动结果新鲜出炉!快来看看是否榜上有名?~~
游戏优化性能杂谈(十一) - 知乎
python_ scrapy_ Fang Tianxia
面部识别:攻击类型和反欺骗技术
Insight -- the application of sanet in arbitrary style transfer
你搞不懂与别人的差距,永远成不了架构师!月薪15K和月薪65K,你差在那了?
临近双11,恶补了两个月成功拿下大厂offer,跳槽到阿里巴巴
print( 'Hello,NumPy!' )
2020-11-05
Rust: command line parameter and environment variable operation
211考研失败后,熬夜了两个月拿下字节offer!【面经分享】
iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】