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

劳动仲裁院内部网站建设网站开发团队人员构成

劳动仲裁院内部网站建设,网站开发团队人员构成,wordpress 总浏览数量,英文书 影印版 网站开发嗨#xff0c;各位#xff01;我们又准时见面了#xff0c;即将迎来难得的周末时光#xff0c;我们今天来一道相对简单的题目逻辑梳理的题目#xff0c;原定的动态规划的常见题型我们放在周末进行更新。话不多说#xff0c;我们先看题目#xff1a; 01 . 题目罗马数字包… 嗨各位我们又准时见面了即将迎来难得的周末时光我们今天来一道相对简单的题目逻辑梳理的题目原定的动态规划的常见题型我们放在周末进行更新。话不多说我们先看题目  01 . 题目罗马数字包含以下七种字符I V X LCD 和 M。字符数值I1V5X10L50C100D500M1000例如2 写做 II 即为两个并列的 1。12 写做 XII 即为 X II 。27 写做  XXVII, 即为 XX V II 。通常情况下罗马数字中小的数字在大的数字的右边。但也存在特例例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况I 可以放在 V (5) 和 X (10) 的左边来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边来表示 40 和 90。C 可以放在 D (500) 和 M (1000) 的左边来表示 400 和 900。给定一个整数将其转为罗马数字。输入确保在 1 到 3999 的范围内。示例 1: 输入: 3 输出: III 示例 2: 输入: 4 输出: IV 示例 3: 输入: 9 输出: IX 示例 4: 输入: 58 输出: LVIII 解释: L 50, V 5, III 3.示例 5: 输入: 1994 输出: MCMXCIV 解释: M 1000, CM 900, XC 90, IV 4.02 . 思路分析这道题整体看起来有明确的规则只需要梳理清楚罗马数字的表示规律即可那我们现在就开始发现规律跟我们常用的阿拉伯数字表示十进制数字相同罗马数字也通过十进制来表示只是比我们的 0 1 2 3 4 5 的阿拉伯数字复杂一些而且每一位用的是不同的字母表示。我们先把 0 - 9 的罗马数字拿出来找规律0123456789空IIIIIIIVVVIVIIVIIIIX我们发现了如下规律0 ~3  就是 0 到 3 个 罗马数字 ‘‘I’’ 表示4 就是 5 - 1 但是减数放在了前面 既 “IV”5 ~ 8 就是用 一个 罗马数字 “V” 加上 0 ~ 3 个 罗马数字 “I” 来表示9 就是 10 - 1 但是减数放在了前面 既 “IX”如果我们把每一位数字分为两组 再去发现规律01234空IIIIIIIV56789VVIVIIVIIIIX当 0 ~ 9 我们分别对5取余时我们发现了更通用的一个规律余 0 ~ 3 的时候是(“空” 或者 “V” ) 加上 余数个“I”余 4 的时候是“I” 加上一个 “X”由此我们确定了罗马数字的规律一个十进制整数的每一位都涉及到了三个罗马数字并按照上述的逻辑去连接罗马数字即可如个位就是 I V X 三个罗马数字十位就是 X L D 三个罗马数字 以此类推。到目前为止我们已经发现了具体规律我们来尝试着编写代码/** * param {number} num * return {string} */var intToRoman  function(num) { let result [] let unit [I, V, X, L, C, D, M] let index 0 while(num){ let n num % 10 let pre n 5 ? unit[index 1] : let u1 unit[index] let u3 unit[index ((n 5) ? 2 : 1)] || switch (n % 5) { case 1: pre u1 break case 2: pre u1 u1 break case 3: pre u1 u1 u1 break case 4: pre u1 u3 break        } result.push(pre) index 2 num Math.floor(num / 10) } return result.reverse().join()};这道题目的具体代码实现比较简单我这里就不逐行注释了有一个细节需要说明就是我在处理每一位的时候是用的push()来存入结果数字在返回答案是先reverse()在进行数组元素连接成字符串。原因就是对于同样的结果操作push() reverse() 的操作 比 unshift() 操作快一些这应该是js的引擎实现决定的有更深入了解的同学欢迎留言去解释一下~。在leetcode上为了更快的运行结果还可以用一些预先计算并直接体现在代码上因为本题的要求是罗马数字在1 ~ 3999的范围所以罗马数字组合只有四种可以直接列出来。我们看一下leetcode上这道题目前最快的代码示例/** * param {number} num * return {string} */var intToRoman function(num) { function TurnFive(n, one, five, ten){ if(n ! 0){ if(n 4){ return one.repeat(n); } if(n 4){ return one five; } if(n 9){ let times n-5; let I one.repeat(times) return five I; } if(n 9){ return one ten; } } return ; } let than Math.floor(num / 1000); let hon Math.floor(num % 1000 / 100); let ten Math.floor(num % 1000 % 100 /10); let ge Math.floor(num % 1000 %100 % 10); return TurnFive(than, M, , ) TurnFive(hon, C, D, M) TurnFive(ten, X, L, C) TurnFive(ge, I, V, X);};这种针对具体题目的优化在一些online judge的比赛中很常见不过它的扩展性就会弱一些 比如 范围要求是 1 ~3999999 那需要在代码中直接列出来的内容就有点多了。所以还是发现规律写出更通用的代码才是我们追求的。这道题到这里就结束了大家可以自己练练手最后祝大家周末愉快明天我会做一个《动态规划解题的常见题集合》不过只有一道题会从头开始分析剩下的题目只讲解思路和特征也算是给大家留一个联系的机会让大家真是的练练手。如果你觉得文章的内容能给你带来收获欢迎关注  点赞在看  转发更期待你能推荐给身边的小伙伴让我们一起来梳理前端知识一起加油「 往期回顾 」动态规划(DP)解积雨问题动态规划(DP)解最大连续子序列文章涉及到源码已经在github中开源请在公众号中发送“源码”获取代码地址让我知道你在看
http://www.zqtcl.cn/news/736827/

相关文章:

  • 自己做网站的难度建设专门网站 强化信息宣传
  • 公职单位建设网站的目的如何查看小程序的开发公司
  • 网页模板网站推荐青岛 php 网站建设
  • joomla 网站建设3d网站建设
  • 网站开发与维护专业前景网站被禁止访问怎么打开
  • 山东 网站建设青海公路建设市场信用信息服务网站
  • 济南正规做网站公司wordpress一键还原
  • 免费的购物网站源码百度网站优化
  • 企业需要做网站吗深圳装修公司前十强
  • 合肥做网站推广哪家好软文写作的十大技巧
  • 哪里做网站的wordpress歌词插件
  • 网站改版做301重定向百度站长平台查询
  • 织梦网站后台网址妙影免费模板下载
  • 甘肃网站建设开发怎么利用花生壳做自己的网站
  • 怎么查询网站开通时间建个短视频网站
  • 物流网站建设广东网站建设效果
  • 网站推广工作流程图天蝎网站建设
  • 备案ip 查询网站查询网站校园门户网站建设方案
  • 网站seo快速优化技巧建设网站的需要学习哪些课程
  • 网站建设微信托管wordpress p=
  • 专业手机网站制作哪家好吉林建筑大学本科招生网
  • 建立一个网站需要哪些google和百度等相关网站的广告词
  • 手机开发网站教程做古建的那些网站比较适合
  • 网站建设公司的前景长沙商城网站开发
  • 大型网站tag标签 索引自己做网站需要哪些软件
  • 石排做网站万网网站备案流程
  • 南京建设银行网站首页简单的ui界面制作
  • 门户网站 建设 如何写如何布置网站
  • 网站前台功能模块介绍建设银行信用卡网站是哪个好
  • 用python做网站我那些网站开发开发语言