> 技术文档 > 模拟算法实例讲解:从理论到实践的编程之旅_模拟理论选线算法程序

模拟算法实例讲解:从理论到实践的编程之旅_模拟理论选线算法程序

目录

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];