首相的密道

背景 在伊耿的征服战争初始的时候,他在现今君临的位置第一次踏上维斯特洛大陆。在君临三座高丘最高的,被称为伊耿高丘的那一座顶上,他用泥土和木材建立了他的第一座要塞。在征服七国以后,伊耿下令在这丘顶上建立一座皇家城堡。这个工程在梅葛一世统治期间完工,他杀掉了所有建筑工人以免泄露城堡内部的秘密。 红堡中有很多座建筑。首相塔是其中的一座。首相塔是国王之手的寝室。 描述 首相塔的塔顶有一个秘密的房间。提利昂忽然对它起了兴趣。
首相塔用一个三角形表示,自顶向下有N层,第i层有i个房间。 每个房间有通向左边,右边,左上方和右上方房间的密道。 通过密道到达房间需要花费一定的时间。 提利昂决定算算他最少需要多久才能到达塔顶。 输入第一行一个整数n(2<=n<=1000)。 第二行到第n+1行,第i+1行有i个整数,每个数表示提利昂通过密道到达这个房间所用的时间。每个整数在0到100之间。 输出一个整数,提利昂所用的最少时间。 样例输入
5

样例输出10

这道题跟leetcode 120的题很想似,不过是增加可同行移动。
方法:自底向上叠加路径,每次都保存到达当前元素经过路径的最小值。
若想从上向下叠加请参考leetcode120题的解题方法。以下是代码实现

<?php
$arr = [[1],[12,3],[4,5,2],[10,1,1,8],[1,1,4,5,6]];
echo minPath($arr);
//国王的密道
function minPath($arr){$row = count($arr);$sum = $arr[$row-1][0];for($i=1;$i<count($arr[$row-1]);$i++){$sum += $arr[$row-1][$i];$arr[$row-1][$i] = $sum; }for($i=$row-2;$i>=0;$i--){for($j=0;$j<count($arr[$i]);$j++){if($j==0){$arr[$i][$j] += min($arr[$i+1][$j],$arr[$i+1][$j+1]);}else{$arr[$i][$j] += min(min($arr[$i+1][$j],$arr[$i+1][$j+1]),$arr[$i][$j-1]);}}}return $arr[0][0];
}

百度笔试题——首相的密道相关推荐

  1. 百度笔试题面试题集总

    1:堆和栈的区别,什么时候用堆什么时候用栈? 2:树的深度优先搜索算法 按照某种条件往前试探搜索,如果前进中遭到失败(正如老鼠钻迷宫老鼠遇到死胡同)则退 回头另选通路继续搜索,直到找到条件的目标为止. ...

  2. 百度linux c面试题,【百度百度糯米算法百度LinuxC语言数据面试题】面试问题:百度笔试题… - 看准网...

    第一部分选择题: 有几道网络相关的题目,巨简单,比如第一题是TCP.RIP.IP.FTP中哪个协议是传输层的.......有一道linux的chown使用题目.其他的全是数据结构的题目!什么链,表,码 ...

  3. python 笔试题 英方_经典算法题 :找字符串中的逆序对(百度笔试题)

    脚本之家 你与百万开发者在一起 来自:百度研发工程师2015深圳笔试卷 编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对. 小贴士:返回上一级搜索"算法题& ...

  4. 百度笔试题:malloc/free与new/delete的区别

    相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同. malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符.对于非内部数据类的对象而言,光 ...

  5. 百度笔试题,malloc/free与new/delete的区别与联系

    相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同. malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符.对于非内部数据类的对象而言,光 ...

  6. 百度笔试题--钓鱼比赛

    题目:两个人SS,CC钓鱼比赛.一个鱼塘里有n*m个区域,每个区域内钓到鱼的概率(以每一分钟计算)不同,CC每次只在一个固定位置(x,y)钓鱼,而SS每分钟都在一个随机的位子钓鱼.问经过t分钟,他们俩 ...

  7. 最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析

    最新百度 阿里 华为 腾讯 谷歌面试笔试题及解析 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的 i .每次从通里面拿 ...

  8. 百度 阿里 华为 腾讯 谷歌面试笔试题及解析

    8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面拿出来两个球:     ii.如果取出的是两 ...

  9. 【转】2014百度 阿里 华为 腾讯 谷歌面试笔试题及解析

    原文: http://www.cnblogs.com/JuneWang/p/3773880.html 已知memcpy的函数为: void* memcpy(void *dest , const voi ...

最新文章

  1. 《程序员修炼之道》读感
  2. box unboxing(装箱 拆箱) C#编程指南
  3. struts2_模型驱动
  4. C++|Qt笔记-关于extern和namespace的区别与联系
  5. 递归——数的计算(洛谷 P1028)
  6. directx sdk march 2009_小视科技极致轻量级模型人脸识别sdk支持活体检测总模型仅8M...
  7. CSS按钮动画(四)
  8. 雨棚板弹性法计算简图_旌阳移动推拉雨棚移动蓬定制
  9. 安装程序检测到无法验证文件的发行者_文件的校验方法
  10. fm核武破解 java出错_关闭Java时后台的FM无法恢复
  11. STM8S 低功耗模式
  12. Java实现基于Socket的pbft算法
  13. word表格内文字行间距调整方法
  14. java技术经理面试题
  15. 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
  16. Muli3D 7 判断Ray与Sphere的关系
  17. 杀疯了!本科大神毕设:3D虚拟主播软件!独创AR直播!支持OBS!开源!
  18. 北京的十大尾货批发市场【接近生活】
  19. Python - 文件基础操作
  20. hive基本概念原理与底层架构

热门文章

  1. 微信JSAPI支付 跟 所遇到的那些坑
  2. 入行游戏建模,做场景建模师必备软件有哪些?有无发展前景
  3. dotween damage text 飘血伤害数字
  4. MySQL 规范数据库设计
  5. Xcode Missing file的解决方案
  6. 斜线“\”与反斜线“/”应用场景的整理
  7. HRBU 2021年暑期训练阶段二Day3
  8. Oracle Net Services 配置失败。退出代码是1 参数responsefile = Oracle Net Configuration Assistant 在给定位置找不到响应文件。
  9. 第一个iOS应用 —— Hello world!
  10. Mac下eclipse安装和配置Tomcat