开发者社区> 问答> 正文

遇到一个跳方格问题,求解答

现在有n 个方格 (1<=n<=1e5),每个方格都有不同的高度 h1,h2,h3...hn (1<=hi<=1e9),Tom 最喜欢跳方格了,刚开始他可以任意选一个方格作为起点,只要他右边的方格没有当前的方格的高度高,他就会不断的往右边的方格去跳,请帮助Tom 计算一下他最多能跳多少个方格 ?输入方格总数 n(1<=n<=1e5),和 n 个数 h1,h2,h3...hn 表示每个方格的高度输出 Tom 能连续跳的最大长度?

展开
收起
游客4skzfvnrxrzbi 2021-12-23 17:04:27 397 0
1 条回答
写回答
取消 提交回答
  • 根据题意可知,此题需要求出最长非递增序列的长度。可以设置一个count值来记录Tom 每次连续跳的方格数,设置一个max值记录连续跳的最大长度。遍历数组,当右边的数字小于等于当前数字时,count值加一,继续下一个方格。当右边的数字大于当前数字时,连续跳方格被打断,统计此次连续跳的方格数count是否大于max,若大于则用count替换max。然后继续下一轮统计,并把count 重新值 0。遍历完数组后,max 值即为Tom能连续跳的最大长度。 因此输入:5 [5,4,3,2,1] 输出:4

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载