模拟算法实例讲解:从理论到实践的编程之旅_模拟理论选线算法程序
目录
1、模拟算法简介
2、替换所有问号
3、提莫攻击
4、Z字形变换
5、外观数列
6、数青蛙
1、模拟算法简介
模拟算法是一种基本的算法设计方法,它的核心思想是按照问题描述的规则,逐步模拟问题的发展过程,从而得到问题的解决方案。这种算法通常不依赖于复杂的数学公式或高级的数据结构,而是通过直接模拟现实世界中的操作或规则来解决问题。
2、替换所有问号
1576. 替换所有的问号
从前往后遍历整个字符串,找到问号之后,就用a ~ z 的每⼀个字符去尝试替换即 可
class Solution {public: string modifyString(string s) { // 模拟,算法流程 int n = s.size(); for(int i = 0;i < n;i++) { // 遍历数组,找到?,替换 if(s[i] == \'?\') { for(char ch = \'a\';ch <= \'z\';ch++) { // (?在开头||替换值与前面的字符不同)// && (?在结尾||替换值与后面字符不同) if((i == 0 || ch != s[i-1]) && (i == n-1 || ch != s[i+1])) { s[i] = ch; break; } } } } return s; }};
3、提莫攻击
495. 提莫攻击
class Solution {public: int findPoisonedDuration(vector& timeSeries, int duration) { int T = 0; for(int i = 1;i < timeSeries.size();i++) { // 计算两次中毒的时间间隔 int time = timeSeries[i] - timeSeries[i-1];