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

教做糕点的视频网站网店代运营哪里有

教做糕点的视频网站,网店代运营哪里有,那个网站可以做ppt赚钱,海南开发公司作者推荐 视频算法专题 本文涉及知识点 数学 回溯 字符串 性能优化 LeetCode1307. 口算难题 给你一个方程#xff0c;左边用 words 表示#xff0c;右边用 result 表示。 你需要根据以下规则检查方程是否可解#xff1a; 每个字符都会被解码成一位数字#xff08;0 - …作者推荐 视频算法专题 本文涉及知识点 数学 回溯 字符串 性能优化 LeetCode1307. 口算难题 给你一个方程左边用 words 表示右边用 result 表示。 你需要根据以下规则检查方程是否可解 每个字符都会被解码成一位数字0 - 9。 每对不同的字符必须映射到不同的数字。 每个 words[i] 和 result 都会被解码成一个没有前导零的数字。 左侧数字之和words等于右侧数字result。 如果方程可解返回 True否则返回 False。 示例 1 输入words [“SEND”,“MORE”], result “MONEY” 输出true 解释映射 ‘S’- 9, ‘E’-5, ‘N’-6, ‘D’-7, ‘M’-1, ‘O’-0, ‘R’-8, ‘Y’-‘2’ 所以 “SEND” “MORE” “MONEY” , 9567 1085 10652 示例 2 输入words [“SIX”,“SEVEN”,“SEVEN”], result “TWENTY” 输出true 解释映射 ‘S’- 6, ‘I’-5, ‘X’-0, ‘E’-8, ‘V’-7, ‘N’-2, ‘T’-1, ‘W’-‘3’, ‘Y’-4 所以 “SIX” “SEVEN” “SEVEN” “TWENTY” , 650 68782 68782 138214 示例 3 输入words [“THIS”,“IS”,“TOO”], result “FUNNY” 输出true 示例 4 输入words [“LEET”,“CODE”], result “POINT” 输出false 提示 2 words.length 5 1 words[i].length, results.length 7 words[i], result 只含有大写英文字母 表达式中使用的不同字符数最大为 10 回溯 简单的例子 AB AC BCD 10AB10AC 100B10CD 20A-99B -9C-D 0 系数20,-99,-9,-1 放到向量v中并排序。如果直接回溯时间复杂度1010超时。 将v排序从后到前处理。处理v[i]先估算v[0,i)的最小值iMin和最大值iMax如果已有值xiMin 0或 xiMax 0则剪枝忽略。 求最小值 如果存在负数最小的负数绝对值最大对应最大的未选择值。如果存在正数最大的正数取最小的未选择数。 求最大值 如果存在负数最小的负数绝对值最大对应最小的未选择值。如果存在正数最大的正数取最大的未选择数。 代码 核心代码超时 class Solution { public:bool isSolvable(vectorstring words, string result) {unordered_mapchar, int mCharCnt; unordered_mapchar, bool mCharNot0;//开头不能为0auto Add [](int iMul, const string s){for (int i s.length() - 1; i 0; i--, iMul*10){mCharCnt[s[i]] iMul;}if (s.length() 1){mCharNot0[s[0]] true;}};for (const auto s : words){Add(1, s);}Add(-1, result);vectorpairint,int v;for (const auto [tmp, cnt] : mCharCnt){v.emplace_back(cnt,mCharNot0[tmp]);}sort(v.begin(), v.end());setint setSel;for (int i 0; i 10; i){setSel.emplace(i);}return DFS(v, setSel, 0, 0);}templateclass Print MinMax(const pairint, int*p, int n, setint,Pr setSel){int result 0;for (int i 0; i ! n;){if (p[i].first 0){result *setSel.begin()*p[i].first;setSel.erase(setSel.begin());}else{result *setSel.rbegin()*p[--n].first;setSel.erase(std::prev(setSel.end()));}}return result;}bool DFS(const vectorpairint,int v, setint setSel, int leve, int result){if (v.size() leve){return 0 result;}const int iMin MinMax(v.data()leve, v.size()-leve, setint, std::greaterint(setSel.begin(), setSel.end()));const int iMax MinMax(v.data() leve, v.size() - leve, setSel);if ((iMin result 0) || (iMax result 0)){return false;}for (int i 9; i v[leve].second; i--){if (!setSel.count(i)){continue;}setSel.erase(i); if (DFS(v, setSel, leve 1, result v[leve].first * i)){return true;}setSel.emplace(i);}return false;} };测试用例 templateclass T,class T2 void Assert(const T t1, const T2 t2) {assert(t1 t2); }templateclass T void Assert(const vectorT v1, const vectorT v2) {if (v1.size() ! v2.size()){assert(false);return;}for (int i 0; i v1.size(); i){Assert(v1[i], v2[i]);}}int main() {vectorstring words;string result;{Solution sln;words { A,B }, result A;auto res sln.isSolvable(words, result);Assert(true, res);}{Solution sln;words { CBA,CBA,CBA,CBA,CBA }, result EDD;auto res sln.isSolvable(words, result);Assert(false, res);}{Solution sln;words { SEND, MORE }, result MONEY;auto res sln.isSolvable(words, result);Assert(true, res);}{Solution sln;words { SIX, SEVEN, SEVEN }, result TWENTY;auto res sln.isSolvable(words, result);Assert(true, res);}{Solution sln;words { THIS, IS, TOO }, result FUNNY;auto res sln.isSolvable(words, result);Assert(true, res);}{Solution sln;words { LEET, CODE }, result POINT;auto res sln.isSolvable(words, result);Assert(false, res);} }估算最小值最大值 pairint,int MinMaxSingle(const pairint, int* p, int n) {int less0 0, more0 0;for (int i 0; i n ; i ){if (p[i].first 0){less0 p[i].first;}else{more0 p[i].first;}}return { less0 * 9,more0 * 9 }; }可以提升一倍还是过不了。 一for循环也可以省略。 二向量变原生数组。 这两个方法效果很小。 class Solution { public:bool isSolvable(vectorstring words, string result) {unordered_mapchar, int mCharCnt; unordered_mapchar, bool mCharNot0;//开头不能为0auto Add [](int iMul, const string s){for (int i s.length() - 1; i 0; i--, iMul*10){mCharCnt[s[i]] iMul;}if (s.length() 1){mCharNot0[s[0]] true;}};for (const auto s : words){Add(1, s);}Add(-1, result);pairint, int v[10];int less0 0, more0 0;for (const auto [tmp, cnt] : mCharCnt){v[m_c] { cnt,mCharNot0[tmp] }; if (cnt 0){less0 cnt;}else{more0 cnt;}}sort(v, vm_c);setint setSel;for (int i 0; i 10; i){setSel.emplace(i);}return DFS(v, setSel, 0, 0,more0,less0);}bool DFS(const pairint, int* p, setint setSel, int leve, int result,int more0,int less0){if (m_c leve){return 0 result;}if ((less0*9 result 0) || (more0*9 result 0)){return false;}for (int i 9; i p[leve].second; i--){if (!setSel.count(i)){continue;}setSel.erase(i); const int curLess0 min(0, p[leve].first);const int curMore0 max(0, p[leve].first);if (DFS(p, setSel, leve 1, result p[leve].first * i,more0curMore0,less0curLess0)){return true;}setSel.emplace(i);}return false;} int m_c 0; };先处理绝对值大的 速度提升大约1000倍。 class Solution { public:bool isSolvable(vectorstring words, string result) {unordered_mapchar, int mCharCnt; unordered_mapchar, bool mCharNot0;//开头不能为0auto Add [](int iMul, const string s){for (int i s.length() - 1; i 0; i--, iMul*10){mCharCnt[s[i]] iMul;}if (s.length() 1){mCharNot0[s[0]] true;}};for (const auto s : words){Add(1, s);}Add(-1, result);pairint, int v[10];int less0 0, more0 0;for (const auto [tmp, cnt] : mCharCnt){v[m_c] { cnt,mCharNot0[tmp] }; if (cnt 0){less0 cnt;}else{more0 cnt;}}sort(v, v m_c, [](const auto pr1, const auto pr2) {return abs(pr1.first) abs(pr2.first); });setint setSel;for (int i 0; i 10; i){setSel.emplace(i);}return DFS(v, setSel, 0, 0,more0,less0);}bool DFS(const pairint, int* p, setint setSel, int leve, int result,int more0,int less0){if (m_c leve){return 0 result;}if ((less0*9 result 0) || (more0*9 result 0)){return false;}for (int i 9; i p[leve].second; i--){if (!setSel.count(i)){continue;}setSel.erase(i); const int curLess0 min(0, p[leve].first);const int curMore0 max(0, p[leve].first);if (DFS(p, setSel, leve 1, result p[leve].first * i,more0-curMore0,less0-curLess0)){return true;}setSel.emplace(i);}return false;} int m_c 0; };扩展阅读 视频课程 有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快 速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176 相关 下载 想高屋建瓴的学习算法请下载《喜缺全书算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653 我想对大家说的话闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。子墨子言之事无终始无务多业。也就是我们常说的专业的人做专业的事。如果程序是一条龙那算法就是他的是睛 测试环境 操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开发环境 VS2022 C17 如无特殊说明本算法用**C**实现。
http://www.pierceye.com/news/11472/

相关文章:

  • wordpress收不到网站纸牌网站建设
  • 网站怎么制作商城哪家公司网站做的好
  • wordpress 百度网站优化的常见问题
  • 信息发布网站设计石家庄网站定制模板建站
  • 外贸网站外链公关公司都有哪些职位
  • 怎么制作网站小游戏品牌建设发展规划
  • 流量推广app广州网站优化推广公司
  • 杭州网络公司做网站报价梅州市住房和建设局网站
  • 央企网站建设意义国税网站建设调查报告
  • 国外论文类网站有哪些电子商务网站设计模板
  • 门户网站建站方案网站做下载功能
  • 长沙公司做网站找哪个公司好汕头企业网站推广方法
  • vps 网站备案定制化网站开发的好处
  • 公司网站域名无法解析vi设计手册案例
  • 湖南新备案的网站wordpress主题知更鸟lts
  • 网站内容分享网站SEO基础代做
  • seo网站优化外包句容本地网站
  • 微页制作平台网站建设朝阳专业网站建设
  • 廊坊公司快速建站百度关键词点击价格查询
  • 义乌专业做网站的公司wordpress 网页存在哪里
  • 可否用nas做网站建材营销型的网站
  • 网站文章的作用西安建设和住房保障局网站首页
  • 义乌做网站的公司好看的ppt模板
  • 辽宁旅游网站开发常州设计公司有哪些
  • 汽车音响网站建设新像素ui设计培训学校
  • 网络公司网站首页源码交易平台
  • 一个jsp做的购物小网站网站建设进程表
  • 长沙网站制作价做网站容易还是app
  • 深圳市门户网站建设蔡甸做网站
  • 深圳网站设计工资一般多少创科手机网站