文章预览
大家好,我是吴师兄。 今天在网上看到一个帖子,博主面试了一个算法实习生,在业务考察过关的情况下,虽然给出的一道算法题并没有在二十分钟内拿下,但因为在解答过程中表现出面试者的一些思考,博主还是让他过了。 先来看一下题目的描述,题目来源于 LeetCode 第 162 号问题: 寻找峰值 。 峰值元素是指其值严格大于左右相邻值的元素 。 给你一个整数数组 nums ,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O(log n) 的算法来解决此问题。 我们用一些结构化的思维来讨论一下这道题目,这样可以让我们在面试过程中遇到一道陌生的 Hard 题也能和面试官聊下去。 首先,具备一些数学知识和编程知识的程序员应该都知道
………………………………