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

建设京东物流网站的目标是什么建设工程交易平台

建设京东物流网站的目标是什么,建设工程交易平台,抖音seo怎么做的,tcga做多因素分析的网站参考练习习题总集 文章目录 前置知识练习习题87. 扰乱字符串97. 交错字符串375. 猜数字大小II403. 青蛙过河464. 我能赢吗494. 目标和552. 学生出勤记录II576. 出借的路径数 前置知识 没有什么特别知识#xff0c;只有一些做题经验。要做这类型的题目#xff0c;首先写出暴…参考练习习题总集 文章目录 前置知识练习习题87. 扰乱字符串97. 交错字符串375. 猜数字大小II403. 青蛙过河464. 我能赢吗494. 目标和552. 学生出勤记录II576. 出借的路径数 前置知识 没有什么特别知识只有一些做题经验。要做这类型的题目首先写出暴力搜索然后写出记忆搜索大概就是这个流程。感觉说了一些废话。 练习习题 87. 扰乱字符串 TLE(自己写的难蚌代码) class Solution { public:unordered_setstring jh;bool isScramble(string s1, string s2) {func(s1,0,s1.size()-1);return jh.find(s2)!jh.end();}void func(string s,int l,int r){if (lr) {jh.insert(s);return;}for (int il;ir;i){func(s,l,i);func(s,i1,r);string temps.substr(0,l)s.substr(i1,r-i)s.substr(l,i-l1)s.substr(r1,s.size()-1-r);func(temp,l,lr-i-1);func(temp,r-il,r);}} };TLE(一个较合适的思路) class Solution { public:bool isScramble(string s1, string s2) {if (s1s2) return true;if (check(s1,s2)) return false;for (int i1;is1.size();i){string as1.substr(0,i),bs1.substr(i);string cs2.substr(0,i),ds2.substr(i);if (isScramble(a,c) and isScramble(b,d)) return true;string es2.substr(0,s1.size()-i),fs2.substr(s1.size()-i);if (isScramble(a,f) and isScramble(b,e)) return true;}return false;}bool check(const string s1,const string s2){int lb[26] {};for (int i0;is1.size();i)lb[s1[i]-a]1;for (int i0;is2.size();i)lb[s2[i]-a]-1;for (int i0;i26;i)if (lb[i]!0) return true;return false;} };AC(刚上手就放弃的屑) temp[i][j][k]从s1[i]开始k个字符从s2[j]开始k个字符是否互为扰乱串呢。(包括下标本身字符)。if (temp[i][j][len]!0) return temp[i][j][len]1;是关键这句删除就是上面那种解法。 class Solution { public:vectorvectorvectorint temp;string string1,string2;int n;bool isScramble(string s1,string s2) {if (s1.size()!s2.size()) return false;string1s1;string2s2;ns1.size();temp.resize(n,vectorvectorint (n,vectorint (n1,0)));return dfs(0,0,n);}bool dfs(int i,int j,int len){if (temp[i][j][len]!0) return temp[i][j][len]1;string astring1.substr(i,len),bstring2.substr(j,len);if (ab){temp[i][j][len]1;return true;}if (check(a,b)){temp[i][j][len]-1;return false;}for (int k1;klen;k) {if (dfs(i,j,k) and dfs(ik,jk,len-k)){temp[i][j][len]1;return true;}if (dfs(i,jlen-k,k) and dfs(ik,j,len-k)){temp[i][j][len]1;return true;}}temp[i][j][len]-1;return false;}bool check(const string s1,const string s2){int lb[26] {};for (int i0;is1.size();i)lb[s1[i]-a]1;for (int i0;is2.size();i)lb[s2[i]-a]-1;for (int i0;i26;i)if (lb[i]!0) return true;return false;} };97. 交错字符串 MLE(第一反应还是暴搜) class Solution { public:string string1,string2;unordered_setstring jh;bool isInterleave(string s1, string s2, string s3) {if (s1.size()s2.size()!s3.size()) return false;string1s1;string2s2;string string3;func(0,0,string3);return jh.find(s3)!jh.end();}void func(int l1,int l2,string s){if (l1string1.size())func(l11,l2,sstring1[l1]);if (l2string2.size())func(l1,l21,sstring2[l2]);if (l1string1.size() and l2string2.size())jh.insert(s);} };TLE(优化一下怎么还是没有过啊我要疯了) class Solution { public:string string1,string2,string3;unordered_setstring jh;bool isInterleave(string s1, string s2, string s3) {if (s1.size()s2.size()!s3.size()) return false;string1s1;string2s2;string3s3;string string4;func(0,0,string4);return jh.find(s3)!jh.end();}void func(int l1,int l2,string s){if (l1string1.size() and string1[l1]string3[s.size()])func(l11,l2,sstring1[l1]);if (l2string2.size() and string2[l2]string3[s.size()])func(l1,l21,sstring2[l2]);if (l1string1.size() and l2string2.size())jh.insert(s);} };TLE(继续优化真是过不了一点啊最后一点真是可恶受不了了) class Solution { public:string string1,string2,string3;bool flagfalse;bool isInterleave(string s1, string s2, string s3) {if (s1.size()s2.size()!s3.size()) return false;string1s1;string2s2;string3s3;func(0,0);return flag;}void func(int l1,int l2){if (!flag){if (l1string1.size() and string1[l1]string3[l1l2])func(l11,l2);if (l2string2.size() and string2[l2]string3[l1l2])func(l1,l21);if (l1string1.size() and l2string2.size())flagtrue;}} };AC(嗨嗨嗨导这么久了终于给我导出来了) temp[i][j]从s1[i]开始剩余字符从s2[j]开始剩余字符能否组成剩余部分。(包括下标本身字符) class Solution { public:string string1,string2,string3;vectorvectorint temp;bool isInterleave(string s1, string s2, string s3) {if (s1.size()s2.size()!s3.size()) return false;string1s1;string2s2;string3s3;temp.resize(s1.size()1,vectorint (s2.size()1,0));return func(0,0);}bool func(int l1,int l2){if (l1string1.size() and l2string2.size()) return true;if (temp[l1][l2]!0) return temp[l1][l2]1;bool resultfalse;if (l1string1.size() and string1[l1]string3[l1l2])result|func(l11,l2);if (l2string2.size() and string2[l2]string3[l1l2])result|func(l1,l21);temp[l1][l2]result?1:-1;return result;} };375. 猜数字大小II AC(题都没有读懂的屑 temp[l][r]区间(l,r)的最小花费。 class Solution { public:vectorvectorint temp;int getMoneyAmount(int n) {temp.resize(n5,vectorint (n5,0));return dfs(1,n);}int dfs(int l,int r){if (lr) return 0;if (temp[l][r]!0) return temp[l][r];int resultINT_MAX;for (int il;ir;i){int result_tempmax(dfs(l,i-1),dfs(i1,r))i;resultmin(result,result_temp);}temp[l][r]result;return result;} };403. 青蛙过河 AC(不看题解也能做啦) cache[now][next]从第0个石头开始走now石头到next石头是否能够到达终点。 class Solution { public:vectorint lb;vectorvectorint cache;bool canCross(vectorint stones) {if (stones[1]!1) return false;lbstones;cache.resize(stones.size(),vectorint (stones.size(),0));return dfs(0,1);}bool dfs(int now,int next){if (nextlb.size()-1) return true;if (cache[now][next]!0) return cache[now][next]1;vectorint temp;int stepslb[next]-lb[now];for (int inext1;ilb.size();i){if (lb[i]lb[next]steps-1) temp.push_back(i);if (lb[i]lb[next]steps) temp.push_back(i);if (lb[i]lb[next]steps1) temp.push_back(i);if (lb[i]lb[next]steps2) break;}for (int i0;itemp.size();i)if (dfs(next,temp[i])){cache[next][temp[i]]1;return true;}else cache[next][temp[i]]-1;return false;} };464. 我能赢吗 超标超标还是超标。 这里共有三个关键 首先就是思路问题我有一个错的思路不论我去选择什么最终结果我都能赢。这种想法不正确的(例如输入样例4、6。只要先手去选择1后手无论怎么选择先手全部情况能赢。但是按照错误思路先手如果去选择4那么先手必然会输。)。也就是说选手只会选择成功最佳方案。 WA class Solution { public:int num1,num2;unordered_setint jh;bool canIWin(int maxChoosableInteger, int desiredTotal) {if ((1maxChoosableInteger)*maxChoosableInteger/2desiredTotal) return false;num1maxChoosableInteger;num2desiredTotal;for (int i1;imaxChoosableInteger;i) jh.insert(i);return dfs(0,0);}bool dfs(int times,int scores){int iter0,lengthjh.size();int * lbnew int [length];for (auto zzjh.begin();zz!jh.end();zz){lb[iter]*zz;iter1;}for (int i0;ilength;i){if (scoreslb[i]num2){if (times%20) continue;delete [] lb;return false;}jh.erase(lb[i]);if (!dfs(times1,scoreslb[i])) {delete [] lb;return false;}jh.insert(lb[i]);}delete [] lb;return true;} };所以正确思路应是我的对手十分强大我选择数必须保证对手必须全部输掉否则那么不选这数继续进行下次循环循环结束如没找到那么我就不能够赢。 TLE class Solution { public:int num1,num2;unordered_setint jh;bool canIWin(int maxChoosableInteger, int desiredTotal) {if ((1maxChoosableInteger)*maxChoosableInteger/2desiredTotal) return false;num1maxChoosableInteger;num2desiredTotal;for (int i1;imaxChoosableInteger;i) jh.insert(i);return dfs(0,0);}bool dfs(int times,int scores){int iter0,lengthjh.size();int * lbnew int [length];for (auto zzjh.begin();zz!jh.end();zz){lb[iter]*zz;iter1;}for (int i0;ilength;i){jh.erase(lb[i]);if (scoreslb[i]num2) {jh.insert(lb[i]);delete [] lb;return true;}if (!dfs(times1,scoreslb[i])) {jh.insert(lb[i]);delete [] lb;return true;}jh.insert(lb[i]);}delete [] lb;return false;} };暴力我们写出来了我们该写记忆搜索。但是我们发现由于使用集合并不好写所以第二关键就是必须换种存储方式。 TLE class Solution { public:int num1,num2,x1;bool canIWin(int maxChoosableInteger, int desiredTotal) {if ((1maxChoosableInteger)*maxChoosableInteger/2desiredTotal) return false;num1maxChoosableInteger;num2desiredTotal;x(xmaxChoosableInteger)-1;return dfs(0,0);}bool dfs(int times,int scores){for (int i1;inum1;i){if (((1(i-1))x)0) continue;x-(1(i-1));if (scoresinum2) {x(1(i-1));return true;}if (!dfs(times1,scoresi)) {x(1(i-1));return true;}x(1(i-1));}return false;} };第三关键记忆搜索 AC class Solution { public:int num1,num2,x1;vectorint lb;bool canIWin(int maxChoosableInteger, int desiredTotal) {if ((1maxChoosableInteger)*maxChoosableInteger/2desiredTotal) return false;num1maxChoosableInteger;num2desiredTotal;x(xmaxChoosableInteger)-1;lb.resize(1maxChoosableInteger,0);return dfs(0,0);}bool dfs(int times,int scores){if (lb[x]!0) return lb[x]1;for (int i1;inum1;i){if (((1(i-1))x)0) continue;x-(1(i-1));if (scoresinum2) {x(1(i-1));lb[x]1;return true;}if (!dfs(times1,scoresi)) {x(1(i-1));lb[x]1;return true;}x(1(i-1));}lb[x]-1;return false;} };494. 目标和 直接暴力 AC class Solution { public:int num,result0;vectorint lb;int findTargetSumWays(vectorint nums, int target) {numtarget;lbnums;dfs(0,0);return result;}void dfs(int begin,int count){if (beginlb.size()){if (countnum) result1;return;}dfs(begin1,countlb[begin]);dfs(begin1,count-lb[begin]);} };552. 学生出勤记录II 首先暴力 TLE class Solution { public:int mod1e97;int checkRecord(int n) {return dfs(n,0,0)%mod;}int dfs(int n,int A,int P){if (n0) return 1;int count0;if (A0) count(countdfs(n-1,1,0))%mod;if (P1) count(countdfs(n-1,A,P1))%mod;count(countdfs(n-1,A,0))%mod;return count;} };记忆搜索 AC class Solution { public:vectorvectorvectorint lb;int mod1e97;int checkRecord(int n) {lb.resize(n,vectorvectorint (2,vectorint (3,0)));return dfs(n,0,0)%mod;}int dfs(int n,int A,int P){if (n0) return 1;if (lb[n-1][A][P]!0) return lb[n-1][A][P];int count0;if (A0) count(countdfs(n-1,1,0))%mod;if (P1) count(countdfs(n-1,A,P1))%mod;count(countdfs(n-1,A,0))%mod;lb[n-1][A][P]count;return count;} };576. 出借的路径数 首先暴力 TLE class Solution { public:int length,width,mod1e97;int findPaths(int m, int n, int maxMove, int startRow, int startColumn) {lengthm,widthn;int count0;for (int i1;imaxMove;i)count(countdfs(i,startRow,startColumn))%mod;return count;}int dfs(int times,int x,int y){if (times0){if (x-1 or xlength or y-1 or ywidth) return 1;return 0;}if (x-1 or xlength or y-1 or ywidth) return 0;int count0;if (x0) count(countdfs(times-1,x-1,y))%mod;if (xlength) count(countdfs(times-1,x1,y))%mod;if (y0) count(countdfs(times-1,x,y-1))%mod;if (ywidth) count(countdfs(times-1,x,y1))%mod;return count;} };记忆搜索 wc超时了怎么办怎么办哎呦你干嘛啊 TLE class Solution { public:int length,width;vectorvectorvectorint lb;int mod1e97;int findPaths(int m, int n, int maxMove, int startRow, int startColumn) {lengthm,widthn;lb.resize(maxMove,vectorvectorint (m,vectorint (n,0)));int count0;for (int i1;imaxMove;i)count(countdfs(i,startRow,startColumn))%mod;return count;}int dfs(int times,int x,int y){if (times0){if (x-1 or xlength or y-1 or ywidth) return 1;return 0;}if (x-1 or xlength or y-1 or ywidth) return 0;if (lb[times-1][x][y]!0) return lb[times-1][x][y];int count0;if (x0) count(countdfs(times-1,x-1,y))%mod;if (xlength) count(countdfs(times-1,x1,y))%mod;if (y0) count(countdfs(times-1,x,y-1))%mod;if (ywidth) count(countdfs(times-1,x,y1))%mod;lb[times-1][x][y]count;return count;} };我寻思这时间复杂度也不高也就 5 0 3 50^3 503。 破大防了C(传)T(统)M(美)D(德)。
http://www.w-s-a.com/news/840531/

相关文章:

  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网
  • 网站设计 知识产权湖北网站建设xiduyun
  • 猫咪网站模版下载中国风 古典 红色 网站源代码
  • 个人网站备案模板制作网站首页
  • 潍坊正规建设网站网站建设设计作业
  • 推荐一下网站谢谢辽宁住房城乡建设部官方网站
  • 网站文件大小英选 网站开发
  • 济南建网站哪家好wordpress编辑器排行
  • 在福州做搬家网站多少钱画册设计网站有哪些
  • 如何让别人浏览我做的网站哪些方法可以建设网站
  • 网站建设与管理网络推广的优点
  • 美食网站的设计与制作做网站的电销话术
  • 中国档案网站建设现状研究陕西建设厅执业资格注册中心网站
  • 网站建设的内容管理怎么用ps切片在dw里做网站
  • 建设婚恋网站用什么搭建涿州网站开发
  • 做知识内容的网站与app哈尔滨哪里有做网站的
  • 青岛企业网站建站模板百度网站建设推广
  • 做360网站中保存的图片存在哪里个人建立网站要多少钱