376. 摆动序列
376. 摆动序列
- 原题链接:
- 完成情况:
- 解题思路:
- 参考代码:
- _376摆动序列
- _376摆动序列
- 错误经验吸取
原题链接:
376. 摆动序列
https://leetcode.cn/problems/wiggle-subsequence/description/
完成情况:

解题思路:
//就是贪心,上升的时候,选取上升数中的较大值// 下降的时候,选取下降数中的较小值//然后因为是摆荡数列嘛,就是要开局确认一下是先递增,还是先递减
参考代码:
_376摆动序列
package 代码随想录.贪心算法;public class _376摆动序列 {/**** @param nums* @return*/public int wiggleMaxLength(int[] nums) {//就是贪心,上升的时候,选取上升数中的较大值// 下降的时候,选取下降数中的较小值//然后因为是摆荡数列嘛,就是要开局确认一下是先递增,还是先递减if (nums.length <= 1){return nums.length;}
// //看增减顺序
// boolean flag = true; //true增 ,false减//当前差值int curDiff = 0;//上一个差值int prevDiff = 0;
// int preA = nums[0];
// int preB = nums[1];
// if (preB - preA < 0){
// //先减
// flag = false;
// }
// int maxValue = preB;
// for (int i=2;i< nums.length;i++){
// if (flag = )
//
// }int count = 1;for (int i = 1; i < nums.length; i++){//得到当前差值curDiff = nums[i] - nums[i-1];//如果当前差值和上一个差值为一正一负//等于0的情况表示初始时的preDiffif ((curDiff > 0 && prevDiff <= 0) || (curDiff < 0 && prevDiff >= 0)){count++;prevDiff = curDiff;}}return count;}
}
_376摆动序列
package 代码随想录.动态规划;import java.util.Map;public class _376摆动序列 {/**** @param nums* @return*/public int wiggleMaxLength(int[] nums) {// 0 i 作为波峰的最大长度// 1 i 作为波谷的最大长度int dp[][] = new int[nums.length][2];dp[0][0] = dp[0][1] = 1;for (int i = 0; i < nums.length; i++){//i 自己可以成为波峰或者波谷dp[i][0] = dp[i][1] = 1;for (int j = 0; j < i; j++){if (nums[j] > nums[i]){//i是波谷dp[i][1] = Math.max(dp[i][1], dp[i][0] + 1);}if (nums[j]< nums[i]){//i是波峰dp[i][0] = Math.max(dp[i][0],dp[j][1] + 1);}}}return Math.max(dp[nums.length - 1][0],dp[nums.length-1][1]);}
}
错误经验吸取
相关文章:
376. 摆动序列
376. 摆动序列 原题链接:完成情况:解题思路:参考代码:_376摆动序列_376摆动序列 错误经验吸取 原题链接: 376. 摆动序列 https://leetcode.cn/problems/wiggle-subsequence/description/ 完成情况: 解题…...
现在个人想上架微信小游戏已经这么难了吗...
引言 大家好,最近我突然想起来我还有一款微信小游戏还没有上架,于是捣鼓了一天把游戏完善了一下,然后准备提交审核,却发现异常的艰难... 1.为什么难? 相信大家都大概知道,自从微信平台宣布 9月1日起&…...
C语言数据结构-----二叉树(2)堆的深入理解及应用、链式二叉树的讲解及代码实现
前言 本篇文章讲述的内容有部分是上一节写过的。重复内容不会再进行说明,大家可以看上一节内容 链接: C语言数据结构-----二叉树(1)认识数、二叉树、堆及堆的代码实现 文章目录 前言1.使用堆解决TOP-K问题2.向下调整堆的时间复杂度与向上调整堆的时间复杂度对比3.堆…...
【算法】【动规】等差数列划分
跳转汇总链接 👉🔗算法题汇总链接 1.2 等差数列划分 🔗题目链接 如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是…...
系统架构设计师教程(五)软件工程基础知识
软件工程基础知识 5.1 软件工程5.1.1 软件工程定义5.1.2 软件过程模型5.1.3 敏捷模型敏捷开发的特点敏捷方法的核心思想主要敏捷方法简介 5.1.4 统一过程模型 (RUP)RUP的生命周期RUP中的核心概念RUP的特点 5.1.5 软件能力成熟度模型 5.2 需求工程5.2.1 需求获取需求获取的基本步…...
计算机中的文件管理
操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU 的管理、存储器的管理、设备管理等,主要解决硬件资源的有效和合理利用问题。 软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、…...
Linux常见排错思路及命令
Linux常见排错思路及命令 一、引言 在Linux系统中,由于其高度可配置和可定制的特性,可能会遇到各种问题。本文将介绍一些常见的排错思路,并提供一些常用的命令,以帮助您快速定位和解决问题。 二、常见排错思路 查看系统日志 …...
【springboot】【easyexcel】excel文件读取
目录 pom.xmlExcelVo逐行读取并处理全部读取并处理向ExcelListener 传参 pom.xml <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version> </dependency>ExcelVo 字段映射…...
【STM32】ADC模数转换器
1 ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 STM32是数字电路,只有高低电平,没有几V电压的概念ÿ…...
Git篇---第九篇
系列文章目录 文章目录 系列文章目录前言一、使用过git merge和git rebase吗?它们之间有什么区别?二、使用过git cherry-pick,有什么作用?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看…...
Paper Reading: (ACRST) 基于自适应类再平衡自训练的半监督目标检测
目录 简介工作重点方法CropBankFBRAFFRTwo-stage Pseudo-label Filtering 实验与SOTA比较消融实验 简介 题目:《Semi-Supervised Object Detection with Adaptive Class-Rebalancing Self-Training》,AAAI’22, 基于自适应类再平衡自训练的半…...
2023年贺岁电影:一眼多,二眼好多
如果从11月末开始统计,今年贺岁档共有72部贺岁片,平均一天就有2部电影上映,看完总计需要花费7400分钟。 这个数量几乎快赶上2021年到2022年贺岁片的总和。 今年电影市场快速回暖以来,多部爆款作品接力上映,持续刺激市…...
软件测试面试中基础与功能的问题
一、 你们的测试流程是怎么样的? 答:1.项目开始阶段, BA (需求分析师) 从用户方收集需求并将需求转化为规格说明书,接 下来在 项目组领导 会组织需求评审。 2.需求评审通过后,BA 会组织 项目…...
map|二分查找|离线查询|LeetCode:2736最大和查询
本文涉及的基础知识点 二分查找算法合集 题目 给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 ,另给你一个下标从 1 开始的二维数组 queries ,其中 queries[i] [xi, yi] 。 对于第 i 个查询,在所有满足 nums1[j] > xi 且…...
你知道Java中的BigInteger类和BigDecimal类吗?
BigInteger和BigDecimal: 我们在学习JavaSE基础的时候学习过int和double,前者是整形,后者是双精度浮点数,但它们是有最大值的,也就是说,他两并不支持无限大的数字。 其范围如下所示: 因此对于…...
33.搜索旋转排序数组
题目来源: leetcode题目,网址:33. 搜索旋转排序数组 - 力扣(LeetCode) 解题思路: 在二分查找时,分情况讨论即可。通过与第一个元素和最后一个元素的比较来获得 mid 处于第一个序列中还是第…...
【unity】【WebRTC】从0开始创建一个Unity远程媒体流app-设置输入设备
【项目源码】 包括本篇需要的脚本都打包在项目源码中,可以通过下面链接下载: https://download.csdn.net/download/weixin_41697242/88623091 【背景】 目前我们能投射到远端浏览器(或者任何其它Peer)的媒体流只有默认的MainCamera画面,其实我们还可以通过配置输入来传…...
Redis持久化AOF详解
基础面试题 什么是AOF AOF(Append-Only File)用于将Redis服务器收到的写操作追加到日志文件,通过该机制可以保证服务器重启后依然可以依靠日志文件恢复数据。 它的工作过程大抵分为以下几步: 收到客户端的写入命令(例如SET、DE…...
基于ssm网络安全宣传网站设计论文
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网络安全宣传网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…...
机器人行业数据闭环实践:从对象存储到 JuiceFS
JuiceFS 社区聚集了来自各行各业的前沿科技用户。本次分享的案例来源于刻行,一家商用服务机器人领域科技企业。 商用服务机器人指的是我们日常生活中常见的清洁机器人、送餐机器人、仓库机器人等。刻行采用 JuiceFS 来弥补对象存储性能不足等问题。 值得一提的是&am…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
