纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Python算法之动态规划解析二维矩阵中的醉汉

5月1日 寒霜坞投稿
  现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行魔改,比如北京某电商平台的这道题:
  有一个正方形的岛,使用二维方形矩阵表示,岛上有一个醉汉,每一步可以往上下左右四个方向之一移动一格,如果超出矩阵范围他就死了,假设每一步的方向都是随机的(因为他是醉的),请计算n步以后他还活着的概率。例如:输入矩阵大小22,起点(0,0),随机走出一步n1输出0。5也就是有一半的几率还活着例如:输入矩阵大小33,起点(1,1),随机走出一步n1输出1也就是百分之百还活着
  乍一看有点懵,但是提取关键字:二维矩阵、上下左右四个方向、矩阵范围、n步,有没有感到很熟悉?刷过Leetcode的同学一定已经联想到了Leetcode原题第576题:出界的路径数,难度等级为中等。
  给定一个mn的网格和一个球。球的起始坐标为(i,j),你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界。但是,你最多可以移动N次。找出可以将球移出边界的路径数量。答案可能非常大,返回结果mod1097的值。
  和魔改版的题联系起来,所谓醉汉死了,其实就是移出边界,而每走一步都会有四种可能,所以所谓的存活率也就是当我们算出移出边界的路径数量之后,再除以方向的基数4,就可以算出存活率,相反也可以推算死亡率,归根结底,魔改版题的题眼还是算出移出边界的路径数,并不是最后问的存活率问题,这题只是用了一个并不是很讲究的障眼法,很有可能是该电商平台老板让手下的某个研发出道算法题招人用,而该研发已经被需求搞的晕头转向,无奈之下随便从leetcode复制了一道出来,随便改了改。
  至于解法,下意识想到并且非常好理解的解法就是利用BFS(BreadthFirstSearch广度优先),因为醉汉最多只能移动N次,我们只要bfs依次遍历如果发现出界,就代表死亡,进行累加1,当bfs的深度大于N的时候break结束。理论上是没有任何问题。importcollectionsdefhowlikelyalive(m,n,N,i,j):mod1097Qcollections。deque(〔(i,j,0)〕)res0whileQ:x,y,stepQ。popleft()ifstepN:breakif0xmand0yn:Q。append((x1,y,step1))Q。append((x1,y,step1))Q。append((x,y1,step1))Q。append((x,y1,step1))else:res1numresmodifnum0:return1else:returnnum4print(howlikelyalive(2,2,1,0,0))
  一般情况下,如果该岗位的技术要求并不高,使用bfs基本就算过关了,但是如果面试官想来一次压力面试(所谓压力面试就是想探探你的底),看看你的极限在哪里,就会要求你用效率更高的算法来解题。(这里需要简单分辨一下压力面试还是故意刁难,压力面试如果不会的话,礼貌询问就能拿到答案,而如果连面试官都不知道面试的答案,那肯定就是故意刁难了,也就没有面下去的必要了)。
  我们再回到题目中想一想,魔改版题目并没有定义醉后随机走的步数N的范围,假设N的取值范围达到了50,我们对任意一个坐标点bfs有四个方向进行遍历,同时考虑往回走的可能性,那么复杂度达到了N的四倍,这个效率显然不会令人满意,所以当N相对小的情况下,比如只走1步,bfs是最优解,而范围过大就需要考虑dp了。
  dp(DynamicProgramming)算法即是业界大名鼎鼎的动态规划算法了,其核心思路是把一个复杂的大问题拆成若干个子问题,通过解决子问题来逐步解决大问题,是不是和分治法有点像?关于分治算法可以参考这篇文章:当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(DivideandConquer),但是和分治法有区别的地方是,使用动态规划思想有个前提:当且仅当每个子问题都是离散的(即每个子问题都不依赖于其他子问题时),才能使用动态规划。
  再次回到题目,假设这个醉汉在第N步到达(mi,nj)位置有dp〔N〕〔mi〕〔nj〕种路径,可以假设一下当前状态如何从上一步移动中得来。其实就是上下左右四个方向移动过来的,而移动步数则是N1。defhowlikelyalive(m,n,N,i,j):tmp〔〔〔0foriinrange(n)〕forjinrange(m)〕forkinrange(N1)〕forkinrange(1,N1):forpinrange(m):forqinrange(n):if0p:up1else:uptmp〔k1〕〔p1〕〔q〕ifm1p:down1else:downtmp〔k1〕〔p1〕〔q〕if0q:left1else:lefttmp〔k1〕〔p〕〔q1〕ifn1q:right1else:righttmp〔k1〕〔p〕〔q1〕tmp〔k〕〔p〕〔q〕(updownleftright)1000000007numtmp〔N〕〔i〕〔j〕ifnum0:return1else:returnnum4returnnumprint(howlikelyalive(2,2,1,0,0))
  结语:Leetcode算法题浩如烟海,想要每一道题都了如指掌,个人感觉难度不小,但是从这道二维矩阵中的醉汉来看,企业就算想要魔改,也是万变不离其宗,多多少少都有迹可循,所以我们在刷题的过程中,应该本着宁缺毋滥的原则,真实的掌握算法核心思想,才能够做到举一反三、百战不殆。
投诉 评论 转载

Python算法之动态规划解析二维矩阵中的醉汉现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行魔改,比如北京某电商平台的这道题:有一个正方形的岛,使用二……进展光激发VO超快电子相变和结构相变的动力学解耦二氧化钒(VO2)是一种典型的强关联材料。在温度约为340K时,VO2会经历从绝缘性单斜相(1VO2)到金属性金红石相(VO2)的一级相变过程。强关联材料中电荷、晶格、轨道和自……全红婵模样大变!陈若琳亲手给她剪头发,中分新发型,成熟了不少近段时间,全红婵的哥哥晒出一段视频,看起来应该是他和爷爷在湛江老家欣赏晚霞,火红的天空分外美丽。这种悠闲自在的状态,才是人们最应该享受的生活,但是在节奏过于快速的现代社会,却变……在古代,为何女子的眉妆要比眼妆更重要?两弯似蹙非蹙罥烟眉,一双似喜非喜含情目《红楼梦》中,宝黛的初次相见,给宝玉印象最深的,就是林黛玉的眉毛和眼睛。作为五官中的配角,眉毛总在无声之间表达出人的内心世界。眉毛,……常用补益药(四)补血药在中医学里,补益药是对人体正气有补益和扶助作用的药物,用于治疗各种虚损的病证,以补益人体气血阴阳亏损、增强人体活动机能、提高抗病能力、消除虚弱证候为主要作用的一类中药,又称补虚……玛恩医生你知道吗?黑眼圈也分很多类型当你打开这篇文章,我就知道你为了追剧,为了小说,为了工作熬了不知多少个夜晚,才会挂着两个大大的黑眼圈。俗话说得好,熬最晚的夜,擦着最贵的眼霜,很多人特别是仙女小姐姐们绝不允许自……数读钱和时间都花哪儿了?银发一族生活大起底我国是世界上老年人口最多的国家,全国60岁及以上老年人口达到2。64亿,占总人口的18。7;65岁及以上老年人口达到1。91亿,占总人口的13。5。预计十四五期间,我国将进入中……曾经去过南充9月16日,麻城北,重庆北,南充北,动车风驰电掣,抵达南充时,已是晚7点。嘉陵江两岸,灯火辉煌,安静祥和。南充,位于川东北,历史文化厚重。《山海经》载肇祖伏羲,南充阆中人……有抱负的女性的7个特征一个有抱负的女性激励着她周围的人。继续快乐地行事的方式很闪耀,让我觉得努力工作是件好事。这不是关于她周围的人,而是关于她自己。可能会觉得,如果你能长大,对周围的人有用,那就太好……普通人穿牛仔裤,试试这6种搭配方式,让你时髦度飙升还不易撞衫想必,不少人都曾有过这样的疑惑同样一件牛仔裤,为什么穿在时尚博主身上,时髦得不像话,而穿在自己身上,却总显土气,是身材的原因?还是颜值的问题?其实都不是,我认为,牛仔裤能否穿出……王牌对决好久不见!既是老朋友也是新游戏,7月28日不见不散格斗游戏怎么做才有新意?对游戏公司来说,绝对是一个不小的难题。在网游盛行的时代,许多格斗网游都是昙花一现,在玩家心中没有留下一点痕迹。但王牌对决却是这其中,少有的在停运多年后仍……国家邮政局到年底实现电商快件不再二次包装比例达到90【环球网科技综合报道】2月22日,记者从国家邮政局官网上得知,在今日举行的专题新闻发布会上,国家邮政局新闻发言人、办公室主任侯延波表示,今年邮政市场监管要重点抓好8个方面工作:……
战争让越南姑娘家破人亡,因越战创伤成名,移居美国生活幸福红薯通便,比芋头更降脂,每周吃两次,血糖稳了肝脏好了2011年,毛主席后人探望一上海老人,揭开一个被掩埋76年的(新华全媒)北京首座国际标准专业足球场新工体落成从5999元跌至3999元,128GB苹果A13,经典iPh请收下这份超详尽三星堆博物馆参观攻略护肤干货篇,找到属于你的护肤方式这个冬季,毛绒外套火了!不仅保暖还减龄,每套都值得借鉴带你去逛福建街广西柳州市三江县丹洲福建街预防痴呆,Mind饮食了解一下乌斯怀亚世界的尽头不想去走一走看一看徐璐身材火辣惹人爱,穿露肩上衣现身引爆全场!
城区河道水环境治理研讨情侣生活的经典语录otg数据线(otg线是什么?)你的牺牲才是最大的自私户外广告牌发布合同汉中市西乡县金牛小学联盟学校在高川开展课堂革命同课异构活动男人抵挡不住女人的哪些小动作(男人最抵挡不住女人叫他什么)热 离婚房产纠纷怎么处理热评聚热点网 揭秘中国最诡异罗布泊双鱼玉佩,人类被复制成镜像人真相一个月减肥10斤,会是什么样子?周总理造句用周总理造句大全我的班级我的家

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形