Z 字形变换

本文介绍了如何使用模拟法解决字符串Z字形排列问题,通过vector和标志位技巧实现,展示了时间复杂度为O(m+n)和空间复杂度O(m+n)的代码实现。重点讲解了vector的应用、标志位的作用,并提供了示例和心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Z 字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:

P   A   H   N
A P L S I I G
Y   I   R

示例

输入:s = "PAYPALISHIRING", numRows = 3
输出:"PAHNAPLSIIGYIR"

题解分析

模拟法

store[i]去存储字符串,最后相加返回。

bool change作为标志位判断是 z 字走向是向上还是向下

chang改变条件:当 i == numRows -1 或者 i == 0

代码展示

string convert(string s, int numRows) {
        int sSize = s.size();
        int storeSize = sSize > numRows ? sSize : numRows;
        string result = "";
        int loc = 0;
    	// 初始 i == 0,设为 false
        bool change = false;
        vector<string> store(storeSize);
        for (int i = 0; i < sSize; i++)
        {
            store[loc].push_back(s.at(i));
            if (loc == numRows - 1 || loc == 0)
            {
                change = !change;
            }
            loc += change ? 1 : -1;
        }
        for (int i = 0; i < storeSize; i++)
        {
            result = result + store[i];
        }
        return result;
    }

心得

vector<string>的应用

标志位的应用

时间空间

时间复杂度 O(m+n)

空间复杂度 O(m+n)

内容概要:本文档详细介绍了如何使用MATLAB实现粒子群优化算法(PSO)优化极限学习机(ELM)进行时间序列预测的项目实例。项目背景指出,PSO通过模拟鸟群觅食行为进行全局优化,ELM则以其快速训练和强泛化能力著称,但对初始参数敏感。结合两者,PSO-ELM模型能显著提升时间序列预测的准确性。项目目标包括提高预测精度、降低训练时间、处理复杂非线性问题、增强模型稳定性和鲁棒性,并推动智能化预测技术的发展。面对数据质量问题、参数优化困难、计算资源消耗、模型过拟合及非线性特征等挑战,项目采取了数据预处理、PSO优化、并行计算、交叉验证等解决方案。项目特点在于高效的优化策略、快速的训练过程、强大的非线性拟合能力和广泛的适用性。; 适合人群:对时间序列预测感兴趣的研究人员、数据科学家以及有一定编程基础并希望深入了解机器学习优化算法的工程师。; 使用场景及目标:①金融市场预测,如股票走势预测;②气象预报,提高天气预测的准确性;③交通流量预测,优化交通管理;④能源需求预测,确保能源供应稳定;⑤医疗健康预测,辅助公共卫生决策。; 其他说明:文档提供了详细的模型架构描述和MATLAB代码示例,涵盖数据预处理、PSO优化、ELM训练及模型评估等关键步骤,帮助读者全面理解和实践PSO-ELM模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值