Golang面试的一道算法题

pengwl · 2019-05-14 13:21:01 · 4635 次点击

问题没怎么搞懂要考察什么,问题是计算移除所有元素所需能量, 这移除方法就有很多,所需能量也不同,我想可能想问的是所需最少能量吧。如果按照这种思路来分析

  • 1 队列中元素自身的值就代表能量,每次执行移除操作前都是前移或者后移一种,
  • 2 由此可以选择二分法来计算
  • 3 将队列中最小的数字找到,根据最小元素位置分为,前组 和 后组
  • 4 计算(前组)和(自身 + 后组)的能量进行比较 若前组能量小,则选择后移;反之,则前移。
  • 5 移动元素直到最小的元素达到移除位置,移除
  • 6 若队列中还有元素,则回到 步骤3 ;若没有,则完成
#6
更多评论

大家看下这道题到底要考察什么。

#1

考解题算法,看解决方案的时间复杂度吧@pengwl

#2