阿里面试:葡萄的最大值和最小值
发布于 2021-09-07 10:42 ,所属分类:2021面试经验技巧分享
所以,无论是社招还是校招,一定要刷题,训练思路。面试的本质是一次考试,跟准备高考一样,没有一定的题量训练就基本歇菜。

朴素解法
遍历数组,求出最大值
遍历数组,求出最小值
package mainimport "fmt"func getMinMax(a []int) (int, int){if len(a) == 0 {// 异常处理}min, max := a[0], a[0]for _, v := range a {if v < min {min = v}if v > max {max = v}}return min, max}func main() {fmt.Println(getMinMax([]int{3, 2, 4, 1, 5, 9, 6, -1}))}
要说明的是,在实际开发工作中,如上程序是能达标的,性能没什么问题,而且可读性极好。
但是,面试就是面试,面试题目就是大家的指挥棒。所以,我们还得按照题目要求进行优化。
优化解法

现在,我们的目标比较次数要优化为O(1.5n),那该怎么着手去做呢?我们看到:如果我们先把4和1进行比较,得出较大的4和较小的1, 那么剩下的就只需要将min和1比较,将max和4比较就行,总共比较次数只有3次,减少了无用的比较,如下图:

可以看到,优化的思路就是对元素进行两两分组,比较次数从O(2n)优化到了O(1.5n).
既然缕清了思路,那么代码的实现就相对简单了,有兴趣的朋友可以尝试写一下代码。
周末聊了一下简单的问题,祝愿大家面试顺利,在金九银十旗开得胜,offer多多。

你好,我是涛哥,CSDN排名第一
自学计算机,毕业后就职华为腾讯
从事软件开发,期待与你一起成长














![[就业指导] Java面试专属视频 最新Java阿里京东美团滴滴面试题及答案教程](https://static.kouhao8.com/sucaidashi/xkbb/fb2f88633d9be374ae995992b13e7779.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)



![[就业指导] Java面试题专属视频 最新Java阿里京东美团滴滴java面试题及答案教程](https://static.kouhao8.com/sucaidashi/xkbb/be2bcf6c23bac0005fdd61e16024bd9c.png?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)


![【葡萄牙语快速入门】唐筱葡萄牙语初级视频教程(40G)[百度网盘分享]](https://static.kouhao8.com/cunchu/cunchu7/2023-05-18/UpFile/defaultuploadfile/230430ml/148-1.jpg?x-oss-process=image/format,webp/resize,w_88/crop,w_88,h_88,g_nw)









相关资源