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

免费制作app生成器网站馆陶网站建设电话

免费制作app生成器网站,馆陶网站建设电话,天威虎建设集团官方网站,wordpress无法创建页面文章目录1 问题描述2 代码实现1 问题描述 C 一个int *arr的数组里面存储一段数据类似波形图,当遇到0时认为是波谷, 现在要找到相邻两个波谷之间的主波峰的y值和其对应的X坐标。已知波谷0值会持续一段时间,而两个波谷之间可能存在多个次波峰…

文章目录

  • 1 问题描述
  • 2 代码实现

1 问题描述

C++ 一个int *arr的数组里面存储一段数据类似波形图,当遇到0时认为是波谷,

现在要找到相邻两个波谷之间的主波峰的y值和其对应的X坐标。已知波谷0值会持续一段时间,而两个波谷之间可能存在多个次波峰,现在需要找到每个主波峰,也就是要找到两段值为0之间所有值的的最大值。

补充,当y值大于0认为波形开始上升 ,当y值等于0,认为波波峰结束,通常情况下波峰较窄,持续为0的波谷较宽。

波形图数组举例:

    // 假设您有一个 int 数组存储了波形图int waveform[] = { 0, 0, 1, 7, 5, 10, 9,  6, 0, 0, 0, 0, 7, 1, 9, 20, 18, 5, 0, 0, 3, 2, 0, 0, 0, 0,  0,  0, 0, 0,0, 0, 0,12, 7, 5,  10, 3, 6, 0 };

2 代码实现

要找到相邻两个波谷之间的主波峰的y值和其对应的X坐标,可以遍历数组,当遇到波谷值为0时,开始记录下一个波峰的上升阶段,并找到这个阶段的最大值作为主波峰。

#include <iostream>
#include <vector>struct Peak {int i; // i下标int y; // 波峰的y值
};std::vector<Peak> findPeaks(int* waveform, int size) {std::vector<Peak> peaks;int maxVal = 0;int maxIdx = 0;bool inPeak = false;for (int i = 0; i < size; ++i) {if (waveform[i] == 0) {//下降沿遇到0,波峰结束if (inPeak) {// 找到了一个波谷,将上一个波峰信息存储起来Peak peak;peak.i = maxIdx;peak.y = maxVal;peaks.push_back(peak);inPeak = false;}}else {if (!inPeak && waveform[i] > 0) {//直到y值> 0,认为波峰出现// 波形开始上升,开始记录波峰maxVal = waveform[i];maxIdx = i;inPeak = true;}else if (inPeak && waveform[i] > maxVal) {// 上升过程中更新最大值和对应的索引maxVal = waveform[i];maxIdx = i;}}}return peaks;
}int main() {// 假设您有一个 int 数组存储了波形图int waveform[] = { 0, 0, 1, 7, 5, 10, 9,  6, 0, 0, 0, 0, 7, 1, 9, 20, 18, 5, 0, 0, 3, 2, 0, 0, 0, 0,  0,  0, 0, 0,0, 0, 0,12, 7, 5,  10, 3, 6, 0 };// 找到主波峰std::vector<Peak> foundPeaks = findPeaks(waveform, sizeof(waveform) / sizeof(waveform[0]));// 打印找到的主波峰for (const auto& peak : foundPeaks) {std::cout << "下标 i: " << peak.i << ", 主波峰的y值 : " << peak.y << std::endl;}return 0;
}

找到了4个波峰
在这里插入图片描述

http://www.dtcms.com/a/496146.html

相关文章:

  • 从发币到行为经济:BSC 发币工具演化的下一站
  • 优秀企业网站wordpress导航怎么设置
  • 自己的主机做服务器网站如何备案企业融资流程
  • 通过强化学习让多模态大模型自主决策图像token压缩的新范式-VisionThink实现思路及奖励函数设计
  • 【C++】深入理解vector(1):vector的使用和OJ题
  • 前端最新Vue2+Vue3基础入门到实战项目9-10
  • UC3842/3845/2842/2845 软启动
  • 免费推广产品的网站年报申报入口官网
  • 做网站答辩三网合一营销型全网站
  • (定时任务)@Scheduled 到 XXL-Job:两种定时任务机制的核心区别
  • 【VSCode】Visual Studio Code 2024安装包及安装教程 (附所有版本下载)
  • java17中,使用原生url connection的方式去创建的http链接,使用的是http1.1还是2.0?
  • 无人机激光避障技术概述
  • 网站空间带宽t型布局网站的样子
  • 【测试】Web安全测试与自动化筛查
  • 上海黄浦 网站建设wordpress图床首页无缩略图
  • 免费手机建站平台杭州最大定制app开发公司
  • asp做的网站后台怎么进去wordpress文章推送公众号
  • Scrapy vs Requests:什么时候该用哪个爬虫框架?
  • 网站建设的步骤是什么赣州58同城网
  • 我的钢铁网网站架构jsp语言做网站
  • JavaSE基础——第十一章 常用类(一)
  • 建设网站托管费用wap手机网站描述正确的是
  • linux问题定位之寄存器篇
  • axios 的二次封装
  • linux系统编程(十②)RK3568 socket之 TCP 客户端的实现
  • 网站如何提交关键词asp网站只能打开首页
  • 门店管理网站建设wordpress 爬虫 插件
  • 提供一些准备Java八股文面试的建议
  • 详细聊一下G1垃圾回收器