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

没有网站怎么做网络推广北京公司注册网站

没有网站怎么做网络推广,北京公司注册网站,得物app的网络营销分析论文,游戏推广员拉人技巧文章目录 DP1 斐波那契数列法1&#xff1a;递归法2&#xff1a;动态规划法3&#xff1a;优化空间复杂度 2.分割连接字符串3. 给定一个字符串s和一组单词dict&#xff0c;在s中添加空格将s变成一个句子 DP1 斐波那契数列 法1&#xff1a;递归 // 递归 #include <iostream>…

文章目录

  • DP1 斐波那契数列
    • 法1:递归
    • 法2:动态规划
    • 法3:优化空间复杂度
  • 2.分割连接字符串
  • 3. 给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子

DP1 斐波那契数列

在这里插入图片描述
在这里插入图片描述

法1:递归

// 递归
#include <iostream>
using namespace std;int Fibonacci(int n)
{if(n == 0) return 0;if(n == 1) return 1;return Fibonacci(n - 1) + Fibonacci(n - 2);
}
int main() {int a;while (cin >> a) { // 注意 while 处理多个 caseint b = Fibonacci(a);cout << b << endl;}
}

法2:动态规划

// DP
#include <iostream>
using namespace std;int Fibonacci(int n)
{//创建一个数组,保存中间状态的解int* F = new int[n + 1];//初始化F[0] = 0; F[1] = 1;//状态公式:F[i] = F[i - 1] + F[i - 2];for(int i = 2; i < n + 1; i++){F[i] = F[i - 1] + F[i - 2];}return F[n];
}
int main() {int a;while (cin >> a) { // 注意 while 处理多个 casecout << Fibonacci(a) << endl;}
}

法3:优化空间复杂度

#include <iostream>
using namespace std;int Fibonacci(int n)
{//状态公式:F[i] = F[i - 1] + F[i - 2];//优化空间复杂度 O(n) -> O(1)if(n == 0) return 0;if(n == 1) return 1;int fn = 0, f0 = 0, f1 = 1;for(int i = 2; i < n + 1; i++){fn = f0 + f1;//更新中间状态f0 = f1;f1 = fn;}return fn;
}
int main() {int a;while (cin >> a) { // 注意 while 处理多个 casecout << Fibonacci(a) << endl;}
}

在这里插入图片描述

2.分割连接字符串

1、给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。

例如:
给定s=“leetcode”;
dict=[“leet”, “code”].
返回true,因为"leetcode"可以被分割成"leet code".

#include <vector>
#include <string>
#include <unordered_set>
using namespace std;bool wordBreak(string s, unordered_set<string>& dict) {// 检查输入是否有效if (s.empty() || dict.empty()) {return false;}// 动态规划数组,flag[i]表示s的前i个字符是否可以被拆分vector<bool> flag(s.length() + 1, false);flag[0] = true; // 空字符串可以被拆分// 遍历字符串的每个位置for (int i = 1; i <= s.length(); i++) {// 从i-1向前遍历到0for (int j = i - 1; j >= 0; j--) {// 如果前j个字符可以被拆分,且从j到i的子字符串在字典中if (flag[j] && dict.find(s.substr(j, i - j)) != dict.end()) {flag[i] = true;break; // 当前位置可以被拆分,跳出内层循环}}}// 返回整个字符串是否可以被拆分return flag[s.length()];
}

3. 给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子

这段代码实现了回溯法(深度优先搜索,DFS)来生成所有可能的单词拆分结果。
2、给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子,使得句子中的每一个单词都是dict中的单词

返回所有可能的结果

例如:给定的字符串s =“catsanddog”,

dict =[“cat”, “cats”, “and”, “sand”, “dog”].

返回的结果为[“cats and dog”, “cat sand dog”].

#include <vector>
#include <string>
#include <unordered_set>
using namespace std;class Solution {
public:vector<string> wordBreak(string s, unordered_set<string>& dict) {vector<string> result;DFS(s, dict, s.length(), "", result);return result;}private:void DFS(const string& s, const unordered_set<string>& dict, int index, string str, vector<string>& result) {// 如果索引小于等于0,说明已经处理完整个字符串if (index <= 0) {if (!str.empty()) {// 去掉最后一个多余的空格,并将结果加入到结果列表中result.push_back(str.substr(0, str.length() - 1));}return;}// 从当前索引向前遍历,寻找可以拆分的单词for (int i = index; i >= 0; i--) {// 检查从i到index的子字符串是否在字典中if (dict.find(s.substr(i, index - i)) != dict.end()) {// 将当前单词加入到路径中,并继续递归处理DFS(s, dict, i, s.substr(i, index - i) + " " + str, result);}}}
};
http://www.yayakq.cn/news/489248/

相关文章:

  • 培训学校网站系统企业网站作用
  • 长沙网站建设要多少钱网站建设自我总结
  • 巩义网站推广怎么做互联网保险的运营模式
  • 彩票网站链接怎么做东莞市建设管理局
  • 湖南监理建设协会网站网站设计工作流程
  • 如何免费建站网站策划工资一般多少
  • 建设银行手机银行官方网站下载安装佛山制作网站公司推荐
  • 重庆找做墩子网站音乐接单推广app平台
  • 长春站建了多少年大千设计装饰有限公司
  • 腾讯云建站平台免费自己做网站软件
  • 郑州营销型网站建设哪家好中企动力做网站价格
  • 网站如何屏蔽ip段扬州网络推广公司
  • 东莞百度网站排名优化网站建设5iec
  • 中国建设招聘信息网站免费图片在线生成
  • 电子商务企业网站建设发展论文网站服务器租用有什么好
  • 吉安网站建设优化服务网站基础模板
  • 郑州网站关键瀑布流资源网站模板
  • node框架做网站智能物联网综合管理平台
  • 奥特蛋的做网站营销传播方式有哪些
  • 木地板企业网站模版招商网站建设
  • 在深圳做it的要做网站网站吗用wordpress写网页
  • 在哪个网站有兼职做网页设计网站费用
  • 一件代发48个货源网站永州城乡建设中等职业技术学校网站
  • 商业网站建设规划范文直播软件视频软件
  • 临沂网站制作计划厦门做商城网站
  • 网站建设cach目录自己做装修图网站
  • 吴忠市建设局网站做任务推广网站
  • 网站备案 加急精美微信小程序模板
  • 湖州高端网站建设asp 女性 美容 知识 网站 源码
  • wordpress升级数据库电子商务seo优化