只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱。

  刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/5882357.html。看了下,挺有意思,于是就想了想,又写了写,最终撸出来了。刚开始一看顿时感觉很熟悉,大学数据结构和算法课肯定讲过相关东西,什么深度搜索,广度搜索,最优路径,最优解。。。但是现在你让我说个一二三,我还就只记住几个名字,说不定名字都记错。我向来不喜欢死记东西,能查到的真的不想背下来,而学校里好多东西就喜欢弄个固定公式什么,让你背下来,然后考试。你让我考试我真没兴趣考高分,让我具体问题写代码,我还能捣鼓出来个一二三。言归正传。

  题目:

  简单来说,就是n,m的0和1矩阵,1就是路径。左上角进去,右上角出来。左右移动消耗1点体力,向下不消耗,向上消耗3点,然后给定体力值,求最优路线。

  

  

  

  

  原文有两道题目,第二道就是简单阶乘略过。

  思路:

  我也是写一点想一点,刚开始想用循环马上发现是不行的。后来写了个递归模拟每一步的移动,渐渐找到方向。再加入相应参数、条件终于实现目标,我不知道这叫什么算法,只是用我能用到的东西解决问题而已。

  把每一步的移动模拟为一个方法,判断下一步可以移动的方向,再次调用移动方法即可。注意每个可移动的方向都调用,那么所有可移动路线也就出来了。

  要是大学里的类似题目解法应该是,建立链表、树之类的,然后还有什么权重什么的,最后算什么权重什么的。。。。我猜大概是这样吧。。。而且我是一个都不知道咋回事了。

  代码:

  

  path是已走过的路径,bn,bm是上一个坐标,cn,cm是当前坐标,p是已消耗体力

  

  结果:

  

  鉴于本码渣算法方面真的是野生水平,在github上建了个算法相关仓库,以后有空会在上面捣鼓捣鼓。这道题代码就在上面,地址:https://github.com/631320085/Algorithm

   算法大神轻喷,完。

   本文方法效率太低,于是在此基础上进行了优化,优化结果在这里: http://www.cnblogs.com/xianyudotnet/p/5889775.html

算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。的更多相关文章

  1. 算法是什么我记不住,But i do it my way. (二)

    昨天做了一道算法题给大家分享了下我的解法,有给出建设性意见的,有支持的还有看得一知半解的.自己想了想的确有可以优化的地方,贴出优化方案.原题和解答过程在这里http://www.cnblogs.com ...

  2. 这些年一直记不住的 Java I/O

    参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...

  3. MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题

    ///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode ...

  4. Git 记不住命令

    Git 记不住命令 每次用每次查 真棒 git log --stat --author=someone # git查询某个人修改记录 git log filename # fileName相关的com ...

  5. $.ajax 方法参数总是记不住,在这里记录一下

    jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...

  6. 英语每日阅读---8、VOA慢速英语(翻译+字幕+讲解):脸肓症患者记不住别人的脸

    英语每日阅读---8.VOA慢速英语(翻译+字幕+讲解):脸肓症患者记不住别人的脸 一.总结 一句话总结: a.neural abnormalities are more widespread:Duc ...

  7. 总是记不住但又总是要用的css

    有没有经常遇到一些样式每次写都要用百度呢?我收集了一些我平时经常要用到的但又总是记不住的样式.有错误的地方欢迎指正.转载请注明出处. 一.设置input 的placeholder的字体样式 input ...

  8. Grid属性太多记不住?【Grid栅格布局可视化编辑器】直观易懂高效,拖拉拽,有手就行!

    手把手教你通过拖拉拽可视化的方式带你练习[Grid栅格布局]的各个属性,直观易懂!再也不愁记不住繁多的Grid属性了.整个过程在众触应用平台进行,不用手写一行CSS代码. grid-auto-flow ...

  9. C算法编程题系列

    我的编程开始(C) C算法编程题(一)扑克牌发牌 C算法编程题(二)正螺旋 C算法编程题(三)画表格 C算法编程题(四)上三角 C算法编程题(五)“E”的变换 C算法编程题(六)串的处理 C算法编程题 ...

随机推荐

  1. 【原】SDWebImage源码阅读(二)

    [原]SDWebImage源码阅读(二) 本文转载请注明出处 —— polobymulberry-博客园 1. 解决上一篇遗留的坑 上一篇中对sd_setImageWithURL函数简单分析了一下,还 ...

  2. DDD 领域驱动设计-领域模型中的用户设计

    上一篇:<DDD 领域驱动设计-如何控制业务流程?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新,并增加了 ...

  3. 浅谈css的伪元素::after和::before

    css中的::after和::before已经被大量地使用在我们日常开发中了,使用他们可以使我们的文档结构更加简洁.但是很多人对::after和::before仍不是特别了解,究竟他们是做什么的?如何 ...

  4. MahApps.Metro使用

    # MahApps.Metro使用 # ## 下载MahApps.Metro ## PM> Install-Package MahApps.Metro ## MainWindow.xaml中添加 ...

  5. laravel安装

    简单概括:Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以 ...

  6. [连载]《C#通讯(串口和网络)框架的设计与实现》- 9.插件引擎设计

    目       录 第九章           插件引擎设计... 2 9.1           框架的契约-接口... 2 9.2           插件的雏形-抽象类... 3 9.3     ...

  7. GJM : Unity3D HIAR -【 快速入门 】 三、导入 SDK

    导入 SDK 本文将向您介绍如何在 Unity 工程中导入 HiAR SDK for Unity.在开始之前,请先访问 HiAR 官网下载最新版本的 SDK. 下载 HiAR SDK for Unit ...

  8. 2016年6月份那些最实用的 jQuery 插件专辑

    jQuery 是一个快速.流行的 JavaScript 库,jQuery 用于文档处理.事件处理.动画和 Ajax 交互非常简单,学习曲线也很平坦.2016年6月的 jQuery 插件专辑里,我们选择 ...

  9. string.empty , "" , null 以及性能的比较

    一:这种结论,个人觉得仍然存疑 http://www.cnblogs.com/wangshuai901/archive/2012/05/06/2485657.html 1.null    null 关 ...

  10. Atitit.日志系统slf4j的使用

    Atitit.日志系统slf4j的使用 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar ...