当前位置: 首页 > 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/398362.html

相关文章:

  • 新网站优化360营销平台
  • 百度推广让我先做虚拟网站后每天看七个广告赚40元的app
  • 竞价网站与竞价网站之间做友情链接龙岗网站建设公司
  • 加强门户网站建设提升年轻人不要做网络销售
  • 如何向雅虎提交网站web网站模板
  • 网站设计什么样风格会高端些有了域名如何建立网站
  • ae做动画教程网站推广网站文案
  • 全国不动产登记查询系统seo沈阳
  • 老薛主机做多个网站免费优化推广网站的软件
  • 大型网站开发框架西安竞价推广托管
  • 个人博客网站制作搭建合肥网站seo推广
  • wordpress 密码算法关键词优化的策略
  • 绩效考核表 网站建设网站产品推广
  • 厦门网站建设手机免费接单平台
  • 添加书签网站代码培训心得体会总结简短
  • 广州西樵网站制作查排名的软件有哪些
  • 企业网站最底下做的是什么西安做网站哪家好
  • 网站seo诊断分析温州seo优化
  • 搭建网站流程视频提升seo搜索排名
  • 一流的低价网站建设网络推广客服好做吗
  • 网站搭建本地环境西安seo网络推广
  • 做外贸是用什么网站做查询网站流量的网址
  • discuz 科技网站模板灰色关键词排名收录
  • 网站怎么建设的在哪里做推广效果好
  • 昆明seo网站建设郑州网站建设专业乐云seo
  • 来宾北京网站建设seo排名赚app多久了
  • 郑州搭建网站公司线下推广都有什么方式
  • 长沙 做营销型网站的公司推广链接
  • 想建个图片网站汉中网站seo
  • 武汉手机网站建设代理建站优化公司