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

新手学做免费网站软件好网站开发的费用计入什么科目

新手学做免费网站软件好,网站开发的费用计入什么科目,合肥网站维护,asp_asp.net_php哪种做网站最好?文章目录 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/646829/

相关文章:

  • 做网站的软件初中生江都建设集团有限公司官方网站
  • godaddy服务器做网站品牌宣传海报设计制作
  • 公司网站建设比较好的公司Wordpress 外链图片6
  • 那里有做网站做网站什么系统简单
  • 投资理财产品的网站建设高端网站建设怎么做
  • 论坛网站建设山西焦煤集团公司网站
  • wordpress仿站流程微商城分销源码
  • 青岛模板建站专业做股权众筹的网站
  • 酒店网站案例国家开放大学网站界面设计
  • 怎么做免费公司网站凡科建站教程
  • 杭州专业做网站的公司哪家好淄博做域名的公司
  • 网站 head关键字 密度 多少字邯郸网站设计建设
  • 北京seo网站推广业务员自己做网站
  • wordpress全站搜索做网站策划书
  • 免费网站大全推荐南通哪里有做网站的
  • 企业信息网站模板廊坊公司做网站
  • 2003系统做网站济宁网站建设只要500元
  • 申请域名后怎样建设网站旅游网站建设方案背景描述
  • wordpress怎么设计网站新公司网站建设方案
  • 南京网站设计建设公司电话介休门户网站
  • 1个ip可以做几个网站做网站店铺图片用什么软件
  • 网站建设题目苏州网站制作搭建
  • 手机微信登入网站网站开发seo要求
  • 网络舆情分析的免费网站优化网站架构
  • 网站首页布局设计教程动漫设计难不难
  • 公司报备网站自己公司设计一个网站
  • 农业行业网站建设网站备案可以变更吗
  • 电子商务网站建设模式箱包官方网站模板
  • 电子商务网站建设课设学生体会凡科h5登录入口
  • 网站产品展示方案企业微网站建站