当前位置:网站首页>笔试面试题目:盛水最多的容器
笔试面试题目:盛水最多的容器
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
边栏推荐
- Sum up some useful functions
- The young generation of winner's programming life, the starting point of changing the world is hidden around
- Astra: the future of Apache Cassandra is cloud native
- Game optimization performance (11) - Zhihu
- Deeplight Technology Bluetooth protocol SRRC certification services
- 渤海银行百万级罚单不断:李伏安却称治理完善,增速呈下滑趋势
- python_scrapy_房天下
- 计算机网络基本概念(五)局域网基本原理
- M-end software product design considerations - Zhihu
- Bili Bili common API
猜你喜欢
YGC问题排查,又让我涨姿势了!
年轻一代 winner 的程序人生,改变世界的起点藏在身边
FORTRAN 77 reads some data from the file and uses the heron iteration formula to solve the problem
shiyou的数值分析作业
How can a technician take over a complex system?
Solve the problem of rabbitmq message loss and repeated consumption
糟糕,系统又被攻击了
洞察——风格注意力网络(SANet)在任意风格迁移中的应用
成功解决An error ocurred while starting the kernel
双向LSTM在时间序列异常值检测的应用
随机推荐
Cloud alibabab notes come out, the whole network detailed explanation only this one hand is slow
ts流中的pcr与pts计算与逆运算
函数周期表丨筛选丨值丨SELECTEDVALUE - 知乎
Bili Bili common API
面部识别:攻击类型和反欺骗技术
Application of bidirectional LSTM in outlier detection of time series
PCIe 枚举过程
YGC问题排查,又让我涨姿势了!
Tiktok live monitoring Api: random recommendation
YGC troubleshooting, let me rise again!
FORTRAN77从文件中读入若干数据并用heron迭代公式开方
Rust:命令行参数与环境变量操作
计算机网络基本概念(五)局域网基本原理
Astra: the future of Apache Cassandra is cloud native
年轻一代 winner 的程序人生,改变世界的起点藏在身边
Architect (November 2020)
Game mathematical derivation AC code (high precision and low precision multiplication and division comparison) + 60 code (long long) + 20 point code (Full Permutation + deep search DFS)
python学习 day1——基础学习
Recommend an economic science video, very valuable!
Japan PSE certification