美团面试的两道算法题
来源:互联网 发布:杭州电魂网络 编辑:程序博客网 时间:2024/06/06 03:29
美团的两道算法题
前天去美团面试,一面和二面问了各问了一道算法题,博主在这里和大家分享一下。
1.二叉树想必大家都了解,对于只有一个节点的二叉树,只会有一种结构,对于有两个节点的二叉树,那么会有2种可能的结构,那么问题来了,对于有n个节点的二叉树,一共有几种可能的情况?
当时直接就想列一下3,4,5个节点分别有多少种可能,然后看能不能找到规律,可是当去遍历4个节点时,发现遍历不住了,就放弃了。然后灵机一动,发现对于n个节点的二叉树,去掉根节点之后,会出现2个种情况。
第一种
一种是变成一颗n-1个节点的二叉树,这种情况存在两种可能。
第二种
另一种情况是,会变成一个a个节点的二叉树和一个b个节点的二叉树,a+b=n-1。
这样很容易列出递推公式,问题就引刃而解了。
[Math Processing Error]
上面公式可以优化一下,我们设[Math Processing Error],这样可以优化为
[Math Processing Error]
2.这个题目感觉挺新颖的,大意是我们令a-z对应数字1-26,这样我发送给你一串数字串比如123,然后进行解析会有abc,lc,aw这3种情况,然后你输出3表示有3种可能。那么问题就来了,我传给你一串数字串[Math Processing Error],然后你告诉我有多少种可能的情况。
这题目很明显是用动态规划来做,最开始我想法是用[Math Processing Error]来表示[Math Processing Error]的串有多少种可能性,那么递推公式为
[Math Processing Error]
当时以为就解决了,可是发现在对123进行验证的时候发现有4种情况,最后发现原来是1,2,3这种情况重复了。简直心碎啊,当时时间紧迫,没有容我三思。不过面试完了之后,我继续研究这个问题,当天晚上就想出来了。用[Math Processing Error]表示[Math Processing Error]子串有多少种可能的表示,我们可以发现,对于[Math Processing Error]来说,[Math Processing Error]无非就是在后面加了一个数字[Math Processing Error],当[Math Processing Error]不能构成一个1-26的数字时,那么其实[Math Processing Error],而当可以构成1-26的数字时,[Math Processing Error].这样递推公式就是
[Math Processing Error]
- 美团面试的两道算法题
- 美团面试的两道算法题
- 面试遇到的两道算法题
- 两道面试算法题
- 2017美团面试算法题
- 两道面试中的算法题
- 美团的面试总结
- 我的美团面试
- 美团面试程序题
- 美团面试程序题
- 美团面试中被问到的问题汇总
- 美团外卖电话面试的知识点
- 面试的两道试题
- 面试的两道智力题
- 2015美团算法工程师笔试、面试之旅
- 面试---美团
- 美团面试总结
- 美团面试经历
- poj 3468A Simple Problem with Integers
- nopcommerce 电商商城 ASP.NET 开源系统
- Cloudera Manager5之安装部署CDH5.X
- 《从0到1》笔记 第九章 基础决定命运
- java笔记
- 美团面试的两道算法题
- UGUI学习——Sprite Pack
- unity3d中平滑跟随的功能实现!!!!
- c++ 代理类 copy clone
- 堆(heap)和栈(stack)简单介绍
- 蔡勒公式的使用
- How to upgrade nodejs
- 唉!!!!!!!!!!!!!!
- linux shell中shift的用法