面试失败之24点算法
2013-05-22 09:20
260 查看
周一风尘仆仆(上午6点抵达成都)的去参加了凡客成都研发中心的面试,虽然经历一夜的折腾让我感觉头脑很不清醒,不过这种面试状态也不错,能让我深刻体验一下在不清醒状态下进行的思考和回答问题。午饭过后便出了门,习惯了不堵车,突然觉得成都的交通真的很拥堵。到达凡客成都研发中心填完表后等了大概10多分钟,面试官把我带进会议室,开始了面试。面试过程为由3位技术大牛面试官轮番面试,他们问了很多有意义的技术和管理类的相关面试问题,我含含糊糊的回答了,最终还是disqualified。不过我很感谢面试官们能告诉我,在我身上存在不足。我觉得每一次的面试都能让我成长一次,希望自己一次一次生长后能使我变的更强大。
话说回来,其中一位面试官问了一个简单的算法问题,如:“1~9的随机取出4个数组成24,如果可以组成则返回true,反之返回false”。这个题面试中遇到了无数次,网上也有很多思路,哎!一直没有去看过和想过。比划了半天也没有什么结果。回来后趁着上班间隙,自己思考了一下,为了给自己加深印象,写了一段代码(见附录,学习和交流)进行练习。
我的思路是:
逐个递归的方式(到处都是递归,我只是写法变了一下),如图。先把数组中的数逐个取出来,然后其余的组成新数组。取出来数于24进行加减乘除运算,以后统称为calc()(如果不能整除则返回),再把新数组中的所有数进行calc()将得到的结果进行对比,如果成功则停止运算返回true,不成功则,再从逐个取出新数组的数,其余的又组成另一个新数组,反复递归后得到结果。
由于我才疏学浅加上最近又学习了《The ThoughtWorks Anthology: Essay on Software Technology and Innovation》,自己摸索着写出来的东西请勿见笑,希望各位大牛在闲暇之余能帮我改进,我在此万分谢谢。附件:算法代码
原文地址:点击打开链接
话说回来,其中一位面试官问了一个简单的算法问题,如:“1~9的随机取出4个数组成24,如果可以组成则返回true,反之返回false”。这个题面试中遇到了无数次,网上也有很多思路,哎!一直没有去看过和想过。比划了半天也没有什么结果。回来后趁着上班间隙,自己思考了一下,为了给自己加深印象,写了一段代码(见附录,学习和交流)进行练习。
我的思路是:
逐个递归的方式(到处都是递归,我只是写法变了一下),如图。先把数组中的数逐个取出来,然后其余的组成新数组。取出来数于24进行加减乘除运算,以后统称为calc()(如果不能整除则返回),再把新数组中的所有数进行calc()将得到的结果进行对比,如果成功则停止运算返回true,不成功则,再从逐个取出新数组的数,其余的又组成另一个新数组,反复递归后得到结果。
由于我才疏学浅加上最近又学习了《The ThoughtWorks Anthology: Essay on Software Technology and Innovation》,自己摸索着写出来的东西请勿见笑,希望各位大牛在闲暇之余能帮我改进,我在此万分谢谢。附件:算法代码
原文地址:点击打开链接
相关文章推荐
- 面试失败之24点算法
- 面试失败之24点算法
- 算法题目-记hulu失败的实习面试
- 水池问题的lua语言算法(面试题分析:我的Twitter技术面试失败了)
- 水池问题的lua语言算法(面试题分析:我的Twitter技术面试失败了)
- 【LeetCode-面试算法经典-Java实现】【100-Same Tree(两棵树是否相同)】
- 面试的时候最常用的两个基础算法
- 经典面试问题:12小球问题算法(源码)
- 十种常见的排序算法,面试算法必考
- 代码面试最常用的10大算法
- 面试的算法1(C语言)(整理)(组合数 字符串倒置 最大公共串)
- 前端面试中的常见的算法问题
- 【LeetCode-面试算法经典-Java实现】【106-Construct Binary Tree from Inorder and Postorder Traversal(构造二叉树II)】
- 面试总结之-查找算法分析
- 若干数据结构 && 算法面试题【二】 (更新完毕)
- 面试中最常遇到的10大算法类型
- 珍藏版、微软等数据结构+算法面试100题全部出炉
- iOS开发-一些面试算法总结
- 面试算法学习-1-字符串旋转
- 面试常见的算法