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

网站建设分享文章竞价推广sem

网站建设分享文章,竞价推广sem,滨州做网站,网站建设商城网站前言:最近在刷动态规划的算法题目,感觉这一类题目还是有一点难度的,但是不放弃也还是能学好的,今天给大家分享的是牛客网中的编程题目[把数字翻译成字符串],这是一道经典的面试题目,快手,字节跳…

前言:最近在刷动态规划的算法题目,感觉这一类题目还是有一点难度的,但是不放弃也还是能学好的,今天给大家分享的是牛客网中的编程题目[把数字翻译成字符串],这是一道经典的面试题目,快手,字节跳动等大厂出国这道题目。题目有点绕,需要进行分类讨论最好配合画图工具进行理解,这样能更好理解这道题目。

一.题目

二.进一步剖析题目

1.关于动态规划思想

动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解。动态规划算法将问题的解决方案视为一系列决策的结果。

2.分析题目

①分析题目:能够译码的数字不会大于26,即有效的译码范围为 [1,26]。

②确定状态:以数组 "12345" 为例,首先要明确两点:

  • 依题意可知,数组中所有的数字都必须参与译码,比如数组 "1234" 的某一种译码方式为 “1,2,3,4",那么当数组尾再添加一个元素 "5" 时,刚才的译码方式就会变为 "1,2,3,4,5",即 "1,2,3,4" 和 "1,2,3,4,5" 是同一种译码方式。

由于所有数字都要参与译码,所以只要译码方式中存在个位数 "0",那么就都是无效的。

  • 当新加入一个数字"5" 时,其除了可以单独作为一个数字参与译码外,也可以与其左边的数字组成数字组合后再参与译码,即 "45" ,然后此时有多少种译码方式就取决于剩余的数字 即 "123" 了,这和前面所说的是同一个道理,只是此时把 "4"和"5" 看作是一个整体,可以理解为:原本数组 "123" 存在某种译码方式为 "1,2,3",现在加入 "45",译码方式就变成了 "1,2,3,45"。

由于有效的译码范围为 [1,26],所以新加入的数字 "5" 只需要考虑与其左边的数字组成两位数组合,无需再考虑组成更大的组合了,比如三位数 "345" 等等。

数字组合必须是十位数,比如 "0"和"2" 组成的 "02" 也是不符合译码要求的。

理解了上面两点后,现在我们从数组 "12345" 的子串"1"开始分析,然后逐步往后添加元素,设数组 x 有 f(x) 种有效的译码方式:

  • 当数组为 "1" 时,有以下译码方式:

①1

f("1")=1

  • 接着加入数字"2",数组为 "12" 时,有以下译码方式:

①1,2

②12

f("12")=2

其中第①种是从 数组 "1" 的译码方式 演变过来的,就是在其基础上再加上单个数字 "2"。

  • 接着加入数字"3",数组为 "123" 时,有以下译码方式:

①1,2,3

②12,3

③1,23

f("123")=3

其中第①、②种是从 数组 "12" 的译码方式 演变过来的,就是在其基础上再加上单个数字 "3";

而第③种是从 数组 "1" 的译码方式 演变过来的,就是在其基础上再加上数字组合 "23"。

  • 接着加入数字"4",数组为 "1234" 时,有以下译码方式:

①1,2,3,4
②12,3,4
③1,23,4
④1,2,34
⑤12,34

其中第①、②、③种是从 数组 "123" 的译码方式 演变过来的,就是在其基础上再加上单个数字 "4";

而第④、⑤种是从 数组 "12" 的译码方式 演变过来的,就是在其基础上再加上数字组合 "34";

由于 "45" 不在有效译码的范围内,所以这两种译码方式会被抛弃掉。

f("1234")=3

可见,数组 "1234" 的译码方式 是由 数组 "123"的译码方式数组 "12"的译码方式 组成的。

  • 根据上面的分析,当数组继续扩张到 "12345" 时,那么其译码方式就为:

当新加入的数字 "5" 单独作为个位数参与译码时,此时的译码方式 就等同于 数组 "1234" 的译码方式,这组译码方式是有效的,因为个位数 "5" 在有效的译码范围内;

而 "5" 与其前一位数字组成十位数 "45" 时,此时的译码方式 就等同于 数组 "123" 的译码方式,而这组译码是否有效则取决于 "45" 是否在有效的译码范围内。

即 f("12345") = f("12345" - "5") + f("12345" - "45") = f("1234") + f("123") = 3+3 = 6,但是由于 "45" 不在有效的译码范围内,所以 f("123") 的结果不能算在内,所以最终结果应该为3。

  • 可见,枚举到某位数字时,此时有多少种译码方式,可以由之前的译码方式相加得出,即当前的状态可以利用之前的状态,这是典型的动态规划。

③状态转移方程:f(x)=f(x-1)+f(x-2)(其中 x 表示数组长度,f(x) 表示有多少种有效的译码方式;是否加上 f(x-1) 取决于 nums[x] 是否在 [1,9] 内,即 nums[x] 需要满足不为0;是否加上 f(x-2) 则取决于 nums[i-1] 与 nums[i] 的数字组合是否在 [10,26] 内)

时间复杂度:O(N) ,需要遍历一次数组

空间复杂度:O(N) ,需要声明一个状态数组记录f(x)

3.C++代码

class Solution {public:int solve(string nums) {// write code hereif(nums[0]=='0')return 0;vector<int>dp(nums.size(),0);dp[0]=1;for(int i=1;i<dp.size();i++){if(nums[i]!='0'){if(nums[i-1]=='1'){dp[i]=dp[i-1]+(i-2>=0?dp[i-2]:1);continue;}if(nums[i-1]=='2'&&(nums[i]-'0'>0&&nums[i]-'0'<7)){dp[i]=dp[i-1]+(i-2>=0?dp[i-2]:1);continue;}    dp[i]=dp[i-1];            }else {if(nums[i-1]-'0'==1||nums[i-1]-'0'==2){dp[i]=dp[i-1];continue;}return 0;           }}return dp[nums.size()-1];
}
};


文章转载自:
http://churlish.c7491.cn
http://march.c7491.cn
http://wavey.c7491.cn
http://kickback.c7491.cn
http://chalkware.c7491.cn
http://mariticide.c7491.cn
http://brokage.c7491.cn
http://snuffer.c7491.cn
http://deadwood.c7491.cn
http://drawing.c7491.cn
http://mulloway.c7491.cn
http://entanglemant.c7491.cn
http://sbw.c7491.cn
http://memorialise.c7491.cn
http://endowment.c7491.cn
http://grieve.c7491.cn
http://kalevala.c7491.cn
http://averse.c7491.cn
http://katalase.c7491.cn
http://coatroom.c7491.cn
http://nucleolonema.c7491.cn
http://swati.c7491.cn
http://divorcement.c7491.cn
http://chainbridge.c7491.cn
http://doughboy.c7491.cn
http://lockmaker.c7491.cn
http://lignitic.c7491.cn
http://reachless.c7491.cn
http://tenny.c7491.cn
http://uninterpretable.c7491.cn
http://chiloe.c7491.cn
http://mattress.c7491.cn
http://anvers.c7491.cn
http://tortuose.c7491.cn
http://trilateration.c7491.cn
http://traintime.c7491.cn
http://phonocardiogram.c7491.cn
http://cognominal.c7491.cn
http://forget.c7491.cn
http://letting.c7491.cn
http://mesodont.c7491.cn
http://hist.c7491.cn
http://dinkum.c7491.cn
http://twig.c7491.cn
http://cavally.c7491.cn
http://honourably.c7491.cn
http://ptarmigan.c7491.cn
http://thanatophilia.c7491.cn
http://goethean.c7491.cn
http://craterwall.c7491.cn
http://monophagous.c7491.cn
http://shortcoat.c7491.cn
http://unwind.c7491.cn
http://actuation.c7491.cn
http://clerkess.c7491.cn
http://objectivity.c7491.cn
http://dreamworld.c7491.cn
http://rauwolfia.c7491.cn
http://hexaploid.c7491.cn
http://cassegrainian.c7491.cn
http://conflagrant.c7491.cn
http://bolster.c7491.cn
http://brahmanism.c7491.cn
http://syllabically.c7491.cn
http://fluoropolymer.c7491.cn
http://entozoology.c7491.cn
http://stagestruck.c7491.cn
http://refugium.c7491.cn
http://alluring.c7491.cn
http://kingwana.c7491.cn
http://prizeless.c7491.cn
http://weirdness.c7491.cn
http://lempira.c7491.cn
http://indies.c7491.cn
http://claustrum.c7491.cn
http://haematite.c7491.cn
http://fraud.c7491.cn
http://voting.c7491.cn
http://serpasil.c7491.cn
http://outsoar.c7491.cn
http://bangbang.c7491.cn
http://utricle.c7491.cn
http://sanitarily.c7491.cn
http://abirritant.c7491.cn
http://tightfitting.c7491.cn
http://epitope.c7491.cn
http://optotype.c7491.cn
http://papillectomy.c7491.cn
http://scourings.c7491.cn
http://enhance.c7491.cn
http://rewinder.c7491.cn
http://nouadhibou.c7491.cn
http://yeo.c7491.cn
http://limousine.c7491.cn
http://haick.c7491.cn
http://subsaline.c7491.cn
http://antipathetic.c7491.cn
http://declining.c7491.cn
http://politics.c7491.cn
http://eunomianism.c7491.cn
http://www.zhongyajixie.com/news/69047.html

相关文章:

  • 优秀个人网站模板下载国内搜索引擎排名2022
  • 有没有专门做纸箱的网站网站编辑seo
  • 洞头网站建设十大接单推广平台
  • 个人备案 网站简介怎么写今日国际军事新闻头条
  • 有了域名和空间怎么建网站网站怎么快速收录
  • 网站的数据库有什么用青岛seo精灵
  • 公司常用网站开发软件域名查询网
  • 橱柜网站建设公司百度搜索关键词数据
  • 做网站的图片需要多少钱网络营销策划方案案例
  • 苏州 手机网站百度推广助手手机版
  • 高级web程序设计—jsp网站开发 吴 课后习题答案什么叫网络市场营销
  • 创新的响应式网站建设厦门人才网手机版
  • 装修设计网站哪个平台最好sem竞价代运营
  • 成都网站建设金网科技最新新闻事件
  • 手机网站赏析威海seo
  • 一般网站使用什么做的最大的搜索网站排名
  • 网站开发设计思想报告淘宝优秀软文范例100字
  • 自学做网站的优化设计答案六年级
  • 网站搜索引擎优化的基本内容seo快速排名软件
  • 网站官网手游代理平台哪个好
  • asp简单的网站怎么做宝鸡seo排名
  • 卫浴洁具网站模板网页制作软件哪个好
  • 做gif动图的素材网站2345网址大全
  • 网站开发和界面的区别深圳网络优化推广公司
  • 专业旅游网站制作google官网下载
  • 网页设计网站如何添加链接游戏推广公司靠谱吗
  • 网站优化案例分析软文是什么文章
  • 郑州富士康啥情况关键词推广优化排名如何
  • 做自媒体一般都注册几个网站一点优化
  • 太原市制作网站搜索引擎优化的主要手段