当前位置: 首页 > wzjs >正文

网站网页设计屏幕尺寸大连可以做网站的公司

网站网页设计屏幕尺寸,大连可以做网站的公司,中国咨询公司排名前十名,深圳做网站新科题目描述 输入长度为 n n n 的一个正整数序列,要求输出序列中最长连号的长度。 连号指在序列中,从小到大的连续自然数。 输入格式 第一行,一个整数 n n n。 第二行, n n n 个整数 a i a_i ai​,之间用空格隔开…

题目描述

输入长度为 n n n 的一个正整数序列,要求输出序列中最长连号的长度。

连号指在序列中,从小到大的连续自然数。

输入格式

第一行,一个整数 n n n

第二行, n n n 个整数 a i a_i ai,之间用空格隔开。

输出格式

一个数,最长连号的个数。

输入输出样例

输入

10
1 5 6 2 3 4 5 6 8 9

输出

5

说明/提示

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 1 0 4 1 \leq n \leq 10^4 1n104 1 ≤ a i ≤ 1 0 9 1 \leq a_i \leq 10^9 1ai109

方式-遍历

代码

class Solution:@staticmethoddef oi_input():"""从标准输入读取数据"""num, nums = int(input()), list(map(int, input().split()))return num, nums@staticmethoddef oi_test():"""提供测试数据"""return 10, [1, 5, 6, 2, 3, 4, 5, 6, 8, 9]@staticmethoddef solution(num, nums):'''遍历'''max_len, current = 1, 1  # 最大 与 当前for i in range(1, num):if nums[i] == nums[i - 1] + 1:current += 1max_len = max(max_len, current)else:current = 1print(max_len)oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solutionif __name__ == '__main__':num, nums = oi_test()# num, nums = oi_input()solution(num, nums)

流程图

处理连续递增序列
nums[i] == nums[i-1]+1?
循环遍历i从1到num-1
current +=1
max_len = max(max_len, current)
进入下一个循环
重置current=1
遍历完成?
开始
主函数调用
读取输入数据
num, nums = oi_input()
初始化max_len=1, current=1
输出最长长度max_len
结束

方式-双指针-滑动窗口

代码

class Solution:@staticmethoddef oi_input():"""从标准输入读取数据"""num, nums = int(input()), list(map(int, input().split()))return num, nums@staticmethoddef oi_test():"""提供测试数据"""return 10, [1, 5, 6, 2, 3, 4, 5, 6, 8, 9]@staticmethoddef solution(num, nums):max_len, left = 1, 0for right in range(num - 1):  # right 表示当前检查的位置的前一个if nums[right + 1] != nums[right] + 1:left = right + 1# 窗口范围为 [left, right+1]# 前面加1 是因为 right 跟 right + 1 比的,括号外面加1 是因为要包含被减去的位置current_len = (right + 1 - left) + 1max_len = max(max_len, current_len)print(max_len)oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solutionif __name__ == '__main__':num, nums = oi_test()# num, nums = oi_input()solution(num, nums)

流程图

滑动窗口处理
nums[right+1] == nums[right]+1?
循环right从0到num-2
移动左边界left=right+1
计算窗口长度
current_len = right+1 - left +1
更新max_len
右移right
开始
调用oi_input()
读取第一行输入→num
读取第二行输入→nums
初始化max_len=1, left=0
right < num-1?
输出max_len
结束

方式-递归-缓存

代码

class Solution:@staticmethoddef oi_input():"""从标准输入读取数据"""num, nums = int(input()), list(map(int, input().split()))return num, nums@staticmethoddef oi_test():"""提供测试数据"""return 10, [1, 5, 6, 2, 3, 4, 5, 6, 8, 9]@staticmethoddef solution(num, nums):import sysfrom functools import lru_cachesys.setrecursionlimit(1000000)  # 强行增大递归深度@lru_cache(maxsize=None)def max_consecutive_length_from_index(i):if i == 0:return 1if nums[i] == nums[i - 1] + 1:return max_consecutive_length_from_index(i - 1) + 1else:return 1print(max(max_consecutive_length_from_index(i) for i in range(num)))oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solutionif __name__ == '__main__':num, nums = oi_test()# num, nums = oi_input()solution(num, nums)

流程图

递归函数处理
i == 0?
定义带缓存的递归函数max_consecutive_length_from_index
返回1
nums[i] == nums[i-1]+1?
递归调用并返回max_consecutive_length_from_index(i-1)+1
返回1
开始
调用oi_input()/oi_test()
获取num和nums
设置递归深度sys.setrecursionlimit(1000000)
遍历计算所有i的最大长度
输出最大值
结束
http://www.dtcms.com/wzjs/594228.html

相关文章:

  • 智慧团建登录网站入口石家庄移动互联网开发
  • 东莞网站建设哪家最好建网站要多少费用
  • 广州专业建网站公司wordpress php框架
  • 邯郸市搞网站服务务的吗网络营销培训多少钱
  • 传奇游戏网站怎么做如何做好市场推广
  • 北京城乡建设官方网站扬州建设教育信息网站
  • 国外教做美食网站营销网站制作要素
  • 建设监理协会官方网站市场营销七大策略
  • 网站keywords重复解决方法wordpress移机
  • 手机网站建设的公司排名建设网站怎么收费标准
  • 如何搭建 seo网站网页添加兼容性站点
  • 做一个网站需要什么个人搭建网站教程
  • 网站还没有做解析是什么意思河南多地启动恢复线下教学
  • 河北省建设厅官方网站 官网软件开发需要多久
  • 做美图 网站有哪些东西阿里云做企业网站
  • 云开发数据库东莞百度首页优化
  • 广州网站推广费用简单的设计软件
  • 广州市网站搭建制作app编程用什么软件
  • 广州小程序开发公司哪家好临沂网站优化
  • 做网站导航一般字号是多少广州一起做网店官网
  • 做网站一年汕头智能模板建站
  • 临沂做外贸网站的公司太仓手机网站建设价格
  • 有哪些做数据分析的网站男女直接做的视频 视频网站
  • 抖音营销网站建设价格延边有没有做网站的
  • 如何做网站搬运工赚钱wordpress站点很慢
  • 贵阳网站开发报价龙岩网站制作公司
  • 新手如何建设网站江苏省建设科技发展中心网站简介
  • 外贸网站推广平台查看网站是否备案
  • 哪个网站专做进口商品的wordpress反爬虫
  • 网站建设与管理模拟试卷一快排seo