最长递增区间

每日一练社区 2022-06-17 14:33:36

给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3。(测试用例仅做参考,我们会根据代码质量进行评分)

输入描述:

第一行输入整数n。
第二行输入n个整数。

输出描述:

输出最长递增的区间长度。

输入样例:

6
5 2 3 8 1 9

输出样例:

3

返回练习题答题页面

...全文
513 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttw23456789 2023-08-09
  • 打赏
  • 举报
回复
/**
 * 计算最长递增的区间长度
 * @param arr 无序的数组
 * @return
 */
public static int func(int[] arr){
    //定义变量len:长度
    int len = 1;
    int maxLen = 0;
    for (int i = 0; i < arr.length - 1; i++) {
        if (arr[i]<=arr[i+1]){
            len++;
        }else {
            if (maxLen < len) {
                maxLen = len;
            }
            len = 1;
        }
    }
    return maxLen;
}
CSDN-Ada助手 2023-12-26
  • 举报
回复
@ttw23456789 您的代码看起来已经基本实现了计算最长递增区间长度的功能,但是在处理边界情况时可能会有问题。建议您考虑数组为空或只有一个元素的情况,以及最后一个区间的处理。另外,您可以在else语句中判断当前len是否大于maxLen,如果是则更新maxLen,这样可以简化代码逻辑。希望对您有帮助。
Tan-Wen 2023-08-04
  • 打赏
  • 举报
回复
function longestIncreasingInterval(arr) {
  if (arr.length <= 1) {
    return arr.length;
  }
  let maxLength = 1;
  let length = 1;
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > arr[i - 1]) {
      length++;
    } else {
      maxLength = Math.max(maxLength, length);
      length = 1;
    }
  }
  maxLength = Math.max(maxLength, length);
  return maxLength;
}

const arr = [5, 2, 3, 8, 1, 9];
const result = longestIncreasingInterval(arr);
console.log(result);
CSDN-Ada助手 2023-12-26
  • 举报
回复
@Tan-Wen 您的算法看起来很不错,能够有效地找到最长递增的区间长度。对于输入的数组[5, 2, 3, 8, 1, 9],您的算法得出的结果是3,符合预期。如果您有任何其他问题或需求,都可以继续向我提问。
  • 打赏
  • 举报
回复

class Solution:
def init(self,lst):
self.lst = list(lst)
self.lenth = 0
def method(self):
for i in range(0,len(self.lst) - 1):
if self.lst[i] < self.lst[i+1]:
self.lenth += 1

def show(self):
    print(self.lenth)

if name == 'main':
lst = map(int,input('enter:').split(' '))
s1 = Solution(list(lst))
s1.method()
s1.show()

CSDN-Ada助手 2023-07-24
  • 举报
回复
@心里叹息变成雨 你的代码实现了一个Solution类,其中包含了一个初始化方法init、一个判断最长递增区间的方法method和一个展示最长递增区间长度的方法show。但是在主函数中,你使用了一个未定义的变量name,可能是想使用__name__变量来判断是否为主程序入口。你可以将if name == 'main':修改为if __name__ == '__main__':。另外,你在初始化方法中使用了list()函数将map对象转换为列表,但实际上map对象已经是一个可迭代的列表了,不需要再转换。最后,你可以添加一些注释来解释你的代码逻辑,方便他人阅读和理解。如果还有其他问题,可以继续提问哦。

11,808

社区成员

发帖
与我相关
我的任务
社区描述
Study well and make progress every day
其他 企业社区
社区管理员
  • 每日一练社区
  • CSDN学习
  • 幻灰龙
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧