首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客05288号
2016-09-02 21:20
大连海事大学 算法工程师
关注
已关注
取消关注
面试时遇到的一个算法题,请教大家
面试时的时候,面试官问了我一个算法题,题目大概是这样的:一个手机键盘上的数子0-9(也就是九宫格键盘),假如有两个机械臂a和b,初始位置都在0数字上,机械臂移动一步都会消耗一定的能量,问随意给定一个手机号码,两个机械臂怎样移动才会消耗最少的能量把手机号码打印出来。
希望大家给个思路,我觉得是动态规划吧,最后能把代码贴出来,谢谢了……
提示
全部评论
推荐
最新
楼层
我来讲一个冷笑话
University of Helsinki C++
因为数字不多,可以动态规划吧。 数字个数1,返回a,b里移动距离最小的。 数字个数大于1,返回min(a移动距离+剩下n-1个数字移动距离最小的,b移动距离,+剩下n-1个数字移动距离最小的。
点赞
回复
分享
发布于 2016-09-03 09:30
牛客1481368号
东北大学 C++
#include<iostream> #include <vector> using namespace std; int DistanceArry[10][10]; int Mindistance=INT_MAX; int arry[11]; int point[2]; void DFS(int index,int value) { if(index==11) { if (value<Mindistance) { Mindistance=value; return ; } } else { for(int i=0;i<2;i++) { int tmp=point[i]; int addvalue=DistanceArry[point[i]][arry[index]]; point[i]=arry[index]; DFS(index+1,value+addvalue); point[i]=tmp; } } } int main() { for(int i=0;i<11;i++) { cin>>arry[i]; } point[0]=point[1]=0; for(int i=0;i<10;i++) { for(int j=i;j<10;j++) { if(i==0) { DistanceArry[j][0]=DistanceArry[0][j]=(11-j)/3+(11-j)%3; } else { DistanceArry[i][j]=DistanceArry[j][i]=((j-i)/3)+(j-i)%3; } } } DistanceArry[0][0]=0; DFS(0,0); cout<<Mindistance<<endl; }
点赞
回复
分享
发布于 2016-09-03 09:19
Horanol
字节跳动_Data-商业化技术_后端开发
这不是一个局部最优的题,不能用贪心算法,也就是不能每一步都取距离最小的值,这样总的步数未必是最小的。
点赞
回复
分享
发布于 2016-09-02 23:22
牛客492426号
Java
让a去找第一个数字,达到后,a在第一个数字位置,b在0,计算a和b距离第二个数字的距离,谁近谁走,依次类推 (感觉就是计算两个点到第三个点的距离,近的变成第三个点,距离相等走a,再继续计算,个人想法,仅供参考,不知道对不对...)
点赞
回复
分享
发布于 2016-09-02 22:15
呵呵哒2333
北京理工大学 C++
这个手机号码是11位的,搜索空间很小,用普通的搜索就行了:(pos1, pos2, index) = Min(dis(pos1, telnum[index]) + (telnum[index], pos2, index+1) /*第一个机械臂从pos1移动到telnum[index]*/,dis(pos2, telnum[index]) + (pos1, telnum[index], index+1)) /*或者第二个机械臂从pos2移动到telnum[index]*/ ; (pos1, pos2, 11) = 0。 (其中dis函数是两个按键的移动消耗,O(1)的复杂度),然后可能会出现重复计算,那么就加个记忆set保存计算过的结果,还有(pos1, pos2, index) == (pos2, pos1, index)。
点赞
回复
分享
发布于 2016-09-02 22:10
cc98
浙江大学 C++
双层的DP
点赞
回复
分享
发布于 2016-09-02 21:32
金八铜九炮灰十
蓝翔职业技术学校
0-9一共10个数,哪来的九宫格?
点赞
回复
分享
发布于 2016-09-02 21:30
gongzixiaomu
华南理工大学
各个数字之间的距离集合中求最小和,初步想法……
点赞
回复
分享
发布于 2016-09-02 21:26
暂无评论,快来抢首评~
相关推荐
10-25 16:39
深信服_技术服务工程师(准入职员工)
深信服内推,深信服内推码
深信服客经一站式面经1⃣️总体感受:一天全部面完,结果通知很快,群面和业务一面感觉很轻松但是业务二面孩子真的被压力坏了😭😭😭😭,汗流浃背了,以为自己凉了,但出来的时候hr跟我说过了。我两场业务面大约都面了四五十分钟,嘴巴都说干了,但是面试现场提供水,饮料,咖啡等本人今天凌晨两点睡的觉,七点起床,上午面一场,下午面三场还要被压力,已经快死了—————————————————————————2⃣️群面1.题目:三个候选人 选择一位当销售经理(题目是随机抽取的)2.流程:①读题3min②讨论30min③汇报2min3.本场bg一半以上都是985硕,我抢到了reporter的位置,讨论过程可能...
点赞
评论
收藏
分享
10-28 20:30
天津农学院 Java
我为啥会失败
高中时,我特别后悔中考没考好,没能进更好的班级。但我从没好好总结过为啥会失利,也没给自己鼓劲,结果高考又考砸了。高考成绩出来后的假期,我一想到成绩就躲,躲着看朋友圈里同学们的好成绩,躲着看社交媒体上大家考上好大学的喜悦。假期里,我就靠打游戏来逃避现实,因为我不想面对期望和现实之间的巨大差距。现在,逃避了三个月,我终于得面对自己的过去了。 大学了,我不想再因为失败就放弃自己!我要为自己的未来打算!我要正视自己的失败!我要变得更好!初中时,我最上进,也最自信,在班里当过课代表、副班长,还是团支部书记和学生会主席,学习上也一直领先,普通班的我能考进年级前二十,那时候我风光得很。但是,我写的作文都是提...
如果有时光机,你最想去到...
点赞
评论
收藏
分享
10-13 13:49
南京大学 财务
不想谈方便面
饿魔:
笑死我了,你简直是个天才
点赞
评论
收藏
分享
09-15 11:59
门头沟学院 Java
面评脏了吗
今天boss上直接联系hr,投字节,结果和我说之前面试过其他岗位,通过概率就不大了呜呜呜,怎么这样,是我上次面试评价很不好吗,太难了,给个机会吧呜呜呜,伤心
mmvvpp:
可能是你命令的口吻让人很不舒服
一起聊字节
点赞
评论
收藏
分享
10-27 17:21
门头沟学院 Java
海康威视后端一面
如何理解Java的面向对象特性对泛型的了解map,list,set的底层数据结构常用的排序算法有哪些,及其时间复杂度对redis的理解,高并发下会有什么问题springboot和springmvc的差异,设计理念的区别,springboot常用注解MySQL常用的sql优化进程和线程的区别,线程间通信方式Java资源一致性如何保证介绍一下实习项目,讲一下全流程对岗位的未来规划反问,偏应用开发,一周出结果
查看14道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
13
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
秋招小失败-后端小小劝退(大结局)
1.2W
2
...
现在出海,是不是相当于十年前加入互联网?
1.1W
3
...
27日常实习 前端 面经
7942
4
...
你们说,人会一直倒霉吗?
7733
5
...
抖音文娱二面挂面经-劝退后端第三天
6746
6
...
一个大专学历15年IT之路的感悟
5040
7
...
数字马力笔试
4923
8
...
什么,你在教我做事?
4664
9
...
挑战全网最早的美团开奖!
4236
10
...
如果你的实习能重来一遍,如何让自己的实习利益最大化
4053
创作者周榜
更多
正在热议
更多
#
校招生月薪1W算什么水平
#
22184次浏览
148人参与
#
硬件人的简历怎么写
#
310942次浏览
3055人参与
#
快手技术岗信息交流阵地
#
16317次浏览
82人参与
#
我是面试官,请用一句话让我破防
#
19936次浏览
112人参与
#
中美关税战对我们有哪些影响
#
39958次浏览
342人参与
#
i人适合做什么工作
#
8937次浏览
84人参与
#
“vivo”个offer
#
34680次浏览
270人参与
#
华为保温
#
103982次浏览
397人参与
#
如果秋招能重来,我会____
#
31872次浏览
266人参与
#
哪些行业值得去?
#
3539次浏览
43人参与
#
机械人,签完三方你在忙什么?
#
64873次浏览
243人参与
#
牛友们,签完三方你在忙什么?
#
118980次浏览
957人参与
#
苦尽甘来时,再讲来时路
#
28166次浏览
405人参与
#
华为池子有多大
#
108446次浏览
750人参与
#
读研or工作,哪个性价比更高?
#
76008次浏览
766人参与
#
如果上班像打游戏,你最想解锁什么技能
#
6280次浏览
61人参与
#
美团开奖
#
195259次浏览
1043人参与
#
为了实习逃课值吗?
#
25026次浏览
228人参与
#
大家实习每天都在干啥
#
97613次浏览
536人参与
#
秋招许愿,本周能____
#
24958次浏览
212人参与
#
秋招什么时候开投比较合适?
#
110246次浏览
807人参与
#
小厂实习有必要去吗
#
70413次浏览
346人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务