开发者社区> 问答> 正文

遇见一个贪心算法的问题,求解答。

有一个阵营,里面有n个小队(1<=n<=100),每个小队都有他们的能力值ai(0<=i现在有一个紧急情况,需要从这些小队中选出连续的几个小队,组成一个最强的团队。最强的团队的定义为这个团队的所有小队的平均能力值最高。如果有多个最强团队,则选包含小队最多的一个。现在请你写个程序,输出这个最强的团队包含的小队的个数。输入小队的数量 n,和 n 个数,分别代表各小队的能力值 ai输出一个数表示这个最强团队包含的小队的个数。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 15:41:45 474 0
1 条回答
写回答
取消 提交回答
  • 根据题意可知,最强团队即团队中每个小队的能力值都是最高的。即解决这道题需要 找出数组中连续最大值的个数,若有多个连续最大值,选择个数最多的。具体实现时,可以先找出数组中最大的能力值是多少,然后设置一个标记tag。接着遍历数组,比较每个数组元素和最大值,数组元素等于最大的值的时候,将 tag标记为 1,数组元素不等于最大值时,将 tag 置为 0。在 tag 等于 1 时统计连续最大值的数量,若统计到多个最大值,则记录最大的那个。 因此输入:6 [1,2,3,3,2,1] 输出:2

    2021-12-23 18:16:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
图解算法小抄 立即下载
面试常考算法 立即下载
低代码开发师(初级)实战教程 立即下载