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

横琴新区公共建设局网站了解深圳网站页面设计

横琴新区公共建设局网站,了解深圳网站页面设计,株洲网站设计,深圳做网站公司华1. 什么是模拟算法? 官方一点来说 模拟算法(Simulation Algorithm)是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型,模拟系统中的各种事件和过程,以便观察系统的行为&a…

1. 什么是模拟算法?

官方一点来说

模拟算法(Simulation Algorithm)是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型,模拟系统中的各种事件和过程,以便观察系统的行为,收集数据并得出结论。这类算法适用于复杂的系统,其中涉及许多相互作用的元素和随时间变化的状态。

通俗来说

我们只需要对照题目,提取出对应的流程,将这个流程转换成代码。需要注意的是, 我们要在草稿纸上过一遍流程,不然很容易出问题。

2. 应用实例

1. 替换所有的问号

题目链接:1576. 替换所有的问号 - 力扣(LeetCode)

解析:分析一下这道题目,我们大致可以遍历一遍数组,在‘?’处从‘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 c = 'a'; c <= 'z'; c++){// 如果?在0位默认前面是符合要求的,最后一位同理if ((i == 0 || c != s[i-1]) && (i == n-1 || c != s[i+1]))s[i] = c;}}}return s;}
};

2. 提莫攻击

题目链接:495. 提莫攻击 - 力扣(LeetCode)

解析:分析题目,我们可以知道每次提莫攻击时,都会重置中毒时间,因此我们只需要计算一下两个攻击的间隔时间,若小于duration就加上这个间隔时间,若大于等于则加上duration即可,即

这之后由于最后一段中毒时间没有统计上去,直接加上即可,代码如下

class Solution 
{
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int time = 0, n = timeSeries.size();for (int i = 1; i < n; i++){int del = timeSeries[i] - timeSeries[i-1];if (del >= duration) time += duration;else time += del; }return time + duration;}
};

3. Z字型变换

题目链接:6. Z 字形变换 - 力扣(LeetCode)

解析:分析这道题目,我们可以知道整个字符串s会被排列成numrows行,仔细观察可以发现所有的下标均满足下面的变化规律:0 -> numRows-1 -> 0 ->numRows-1,我们可以对下标的变化进行模拟,即设定一个flag表示当前下标向下还是向上移动,移动到边界时将i与flag修改成正确值,同时创建一个<int, string>的哈希表来储存每行字符串,最后遍历一遍哈希表即可(注:这里需要对numRows为1做特殊情况处理),代码如下

class Solution 
{
public:string convert(string s, int numRows) {if (numRows == 1) return s;int n = s.size();unordered_map<int, string> hash;string ret;int i = 0, flag = 1;// flag为1表示向下移动for (auto& ch : s){if (i == numRows) flag = 0, i -= 2;if (i == -1) flag = 1, i += 2;hash[i] += ch;if (flag) i++;else i--;}for (int i = 0; i < numRows; i++) ret += hash[i];return ret;}
};

4. 外观数组

题目链接:38. 外观数列 - 力扣(LeetCode)

解析:分析题目,我们可以发现这道题的意思是让我们每次描述前一个字符串,因此我们只需要创建一个临时字符串s即可,然后每次统计描述之后更新s即可,代码如下

class Solution 
{
public:string countAndSay(int n) {string s = "1";while (--n){string pre = s;string now;int num = 0;for (int left = 0, right = 0; right < pre.size(); right++){if (pre[left] != pre[right]) {now += to_string(num) + pre[left];left = right;num = 1;}else num++;}now += to_string(num)+ pre.back();s = now;}return s;}
};

http://www.yayakq.cn/news/769740/

相关文章:

  • 浙江建设网站是多少为什么说能进中交不进中建
  • 冠县品牌网站建设推广一个人建设小型网站
  • 网站建设z上海网站建设 推荐站霸网络
  • 汽车4s店网站建设方案百度问问
  • 做网站充值犯法吗谷歌seo怎么做
  • 模仿网站页面违法吗网页发布的步骤
  • 网站建设存在问题安徽省建设信息网
  • 网站建设相关费用预算推广自己建个购物网站
  • 免费下载app软件网站中国传统文化网页设计
  • 霸州 网络 网站建设动画设计学校
  • 贵阳网站上门备案业务电子商务网站建设主管的策划案
  • aws的永久免费服务网站优化怎么做效果才好
  • 杭州网站建设宣盟网络免费的个人简历ppt模板
  • 成都网站建设福州南昌建站价格
  • 网站做中英版腾讯网站建设推广
  • 有什么做海报的网站吗上海建筑工程股份有限公司
  • 数据库修改网站后台密码自己做的网站打不开了
  • 在柬埔寨做网站开发室内设计效果图制作软件
  • 镇江高端网站定制广州住建网站
  • 华为云建站怎么样江阴网站优化
  • 创想网站中国建设人才网官网证书查询
  • 网站建设需要做哪些工作wordpress网站换域名
  • 北京做网站哪个好徐东做网站
  • 网站怎么做可以被收录佛山电子商务网站设计
  • 东莞企业建站申请多少钱网页可以做什么主题
  • 网页设计网站教程做那种事情的网站
  • 网站上线 备案外贸购物网站建站
  • 17一起做网店网站公司网页设计报告5000字
  • 普像工业设计网站wordpress 字数
  • arvixe如何做网站重庆装修工人哪里找