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

网站开发文档编写优质服务的网站建设

网站开发文档编写,优质服务的网站建设,网站建设业绩,如何做网络营销推广南宁目录 1. 题目:2. 我的代码:小结: 1. 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等…

目录

  • 1. 题目:
  • 2. 我的代码:
  • 小结:

1. 题目:

在这里插入图片描述

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。

例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。

相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。
子序列 可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。

给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度 。

示例 1:

输入:nums = [1,7,4,9,2,5]
输出:6
解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3) 。

示例 2:

输入:nums = [1,17,5,10,13,15,10,5,16,8]
输出:7
解释:这个序列包含几个长度为 7 摆动序列。
其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8) 。

示例 3:

输入:nums = [1,2,3,4,5,6,7,8,9]
输出:2

2. 我的代码:

class Solution:def wiggleMaxLength(self, nums: List[int]) -> int:# -- 贪心算法 --# 双指针p_fast = 1p_slow = 0# 快慢指针result = 0while p_fast < len(nums) - 1:p_fast += 1if nums[p_fast - 1] > nums[p_fast] and nums[p_fast - 1] > nums[p_slow]:k = 1result += 1p_slow = p_fast - 1elif nums[p_fast - 1] < nums[p_fast] and nums[p_fast - 1] < nums[p_slow]:k = -1result += 1p_slow = p_fast - 1if len(nums) > 2:if nums[0] != nums[len(nums) - 1]:endPoint = 2else:if result == 0:endPoint = 1else:endPoint = 2else:if nums[0] != nums[len(nums) - 1]:endPoint = 2else:endPoint = 1return result + endPoint

这里使用贪心算法,局部的极值就是要求得的摆动点。首先因为要返回一个值即可,所以不需要实际地去将列表做删减,只需要统计整个过程中的摆动点的个数即可,变为数学问题就是求极值点的个数。什么是极值点来着,用数学的定义就是在小区间内,这个点最大就是极大值,这个点最小就是极小值。

因此,我们设置快慢指针,分别表示要判断的点的右边的点和左边的点。那么中间要判断的点就是快指针的后一位,为什么呢。假设[1, 2, 3, 1]这样的序列。慢指针在[1],快指针在[3],这时要判断的点是[2],因为[2]并不比[1]和[3]都大,所以2不是极值点。因为后面要变大的点一定比[1]大,所以,可以保留慢指针在这个位置,要判断的值和快指针一起向前走即可。

再加上两个端点处的摆动点即可(如果整个序列只有一个元素,则是一个摆动点;如果序列元素是2个,但是两个值相同,则摆动点还是一个;如果两个值不相同,则摆动点是2个)…

端点判断代码如下(有点长,但是时间复杂度不高):

if len(nums) > 2:if nums[0] != nums[len(nums) - 1]:endPoint = 2else:if result == 0:endPoint = 1else:endPoint = 2
else:if nums[0] != nums[len(nums) - 1]:endPoint = 2else:endPoint = 1

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可:

http://www.sczhlp.com/news/89808/

相关文章:

  • 做网站和c 哪个好创新驱动发展战略纲要
  • 温州网站建设风格网站设计开发的难点
  • 利用Ampere Altra与SpinKube实现可扩展工作流的突破性实践
  • 有向距离场SDF,在游戏中如何实现agent导航以及绕障
  • ubuntu22.04.5系统重启后网络配置消失问题
  • 第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)暨2025年泰山学术论坛-鲁东大学微纳传感器及系统专题论坛
  • 网站备案中的网站名称wordpress用什么服务器
  • 邹城有做网站的吗dede可以做视频网站
  • 做面料要建议网站营销传播
  • 勒流网站建设微信推广方式都有哪些
  • 男女做差差事的视频网站宁夏教育资源公共服务平台
  • 关于营销型网站建设的建议建筑类期刊排名
  • 网站哪个公司做的做网站要求高吗
  • 做陶瓷的公司网站网站建设与运营培训班
  • 企业网站策划案例商业论坛网
  • SLB和NAT网关的作用
  • 做网站的好处在哪里网站开发流程莆田
  • 门户网站制作模板永久免费个人网页申请
  • 快速建设网站方案今天重大新闻100字
  • 做视频网站需要多少上传wordpress 表格小工具
  • 周口河南网站建设天津网站建设代理商
  • 个人博客网站需要备案吗官网制作公司
  • 网站的建设分析及意义邯郸网站建设邯郸网站制作
  • wordpress跳转手机站网站自动跳转怎么办
  • 正规的网站制作开发赣州做网站的
  • wordpress 4.4.2漏洞上海百度推广优化
  • 官网网站建设方案书网站模板编号
  • 提供网站建设公wordpress建博客教程
  • 基于Python+Vue开发的音乐推荐管理系统源码+运行
  • linux 系统下iperf 测试网卡性能优化步骤