算法是什么我记不住,butidoitmyway.解一道滴滴出行秋招编程题。

咸鱼.net 咸鱼.net     2022-08-05     402

关键词:

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

  刷首页看到一篇文章写的滴滴出行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/A-path-problem

   算法大神轻喷,完。

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

我记不住的那些top命令

背景:之前总是使用top命令,但是总是记不住相关的交互式参数,其实RTFM和STFW这两种方式已经很棒了,但自己还是想总结一下,算作知识积累,也算是重新学习,仅供参考。top(tableofprocesses) 一般用于... 查看详情

领域搜索算法是什么和遗传算法模拟退火算法禁忌搜索算法模糊优化算法微粒群算法关系

邻域搜索算法作为一种简单高效的局部优化算法,该算法首先构建一个初始解i,然后利用邻域搜索规则在初始解i的邻域中持续地寻找比它质量更好的解,如果能找到这样的解,则以之代替解i成为... 查看详情

raft为什么是更易理解的分布式一致性算法

编者按:这是看过的Raft算法博客中比较通俗的一篇了,讲解问题的角度比较新奇,图文并茂,值得一看。原文链接:Raft为什么是更易理解的分布式一致性算法  一致性问题可以算是分布式领域的一个圣殿级问题了,关于... 查看详情

什么是机器学习?

...一般而言,我们让计算机帮我们完成一个任务,我们进行算法设计,进行编码,让计算机按照写好的指令一步步执行,将输入变换成输出。然而,对于有些任务,我们并不能提出一个明确的算法,比如垃圾邮件的识别,究竟什么... 查看详情

转载raft为什么是更易理解的分布式一致性算法

一致性问题可以算是分布式领域的一个圣殿级问题了,关于它的研究可以回溯到几十年前。拜占庭将军问题LeslieLamport在三十多年前发表的论文《拜占庭将军问题》(参考[1])。拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马... 查看详情

贪心算法的理解

什么是贪心算法?贪心算法从步步最优,到达全局最优。什么时候能够使用贪心算法?一般来说,凡是经过数学归纳法证明可以采用贪心法的情况都应该采用它,因为它具有高效性。通常还有另外一个方法来判断,如果一个问题... 查看详情

智能算法|有哪些以动物命名的算法?

...草池塘处处蛙。有约不来过夜半,闲敲棋子落灯花。鱼群算法?鸟群算法?蝙蝠算法?蚁群算法?病毒算法?。。。what?这些是什么沙雕算法?别看这些算法名字挺接地气的,实际上确实很接地气。。。以动物命名的算法可远... 查看详情

什么是量化交易算法?

量化交易算法简单来说就是一组参数,把许多组参数通过编程的方式才能构成我们的量化交易模型。可以。量化交易算法是量化交易模型的建模基础,是量化策略执行的先决条件。我们建立量化交易模型的目的就是想办... 查看详情

a*search算法

...。。。 不多说题外话,进入正题。 什么是A*搜索算法呢?就用百科的解说吧:A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实... 查看详情

什么是https

...端和服务端的通信过程得到安全保证,必须使用对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与... 查看详情

学军noip2016模拟赛1

...nbsp;  P.S.常数这么大也能过。。。然而一开始260为什么呢。。anc开的maxv 查看详情

算法-稳定性

...底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai=Aj,Ai... 查看详情

华为od机试用python实现-解压缩算法

华为OD机试题最近更新的博客华为OD机试300题大纲解压缩算法题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明代码编写思路Python代码实现最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单 查看详情

算法基础——枚举(代码片段)

...枚举3.排列枚举枚举的优化枚举总结枚举什么是枚举枚举算法是一种经典的暴力算法,是通过遍历所有候选答案以找到正确的解的问题解决策略;枚举的基本框架1.给出解空间建立数学模型,确立候选答案的范围,从数学的角度... 查看详情

raft为什么是更易理解的分布式一致性算法——leader在时,由leader向follower同步日志leader挂掉了,选一个新leader,leader选举算法。

Raft协议的易理解性描述虽然Raft的论文比Paxos简单版论文还容易读了,但论文依然发散的比较多,相对冗长。读完后掩卷沉思觉得还是整理一下才会更牢靠,变成真正属于自己的。这里我就借助前面黑白棋落子里第一种极简思维... 查看详情

经不住逝水流年

活着,为了什么?陈老师这样问我们。许久,我都没找到答案。整天沉醉与周公与网络的世界。一天又一天,早已忘却时间与烦恼。你说,举杯消愁。你说,明天再来。可我,明明习惯了自己的世界,为何心中总有些不安与惶恐... 查看详情

jquery遮罩层遮挡不住图片是怎么回事,弹出层,网页背景透明那块,文字什么的都可以遮住

说明你的遮罩层的z-index的数值比弹出层的小了~所以造成了弹出层在上面遮罩层在下面遮不住了呗~参考技术A可以试试artdialog 参考技术B,林则徐,此刻 查看详情

扩展欧几里得算法的模板实现

...居然现在还记不住扩欧的板子,我太弱啦!扩展欧几里得算法解决的是这样的问题:给定一个不定方程组ax+by=gcd(a,b),求他的一组整数解先给出实现代码voidexgcd(inta,intb,int&x,int&y){ if(!b) { x=1,y=0;//gcd(a,0)显然等于1*a-0*0=a returna... 查看详情