美团三面前端-凉经

我应该是有问题,好几次被面试官说不能理解xxx,不在同一服务器的感觉
最后给我的评价是,我应该是没怎么写过页面。。别的还好
但是看脸色应该是凉了
1.介绍项目难点
2.一道算法,超时了
换钱的最少货币数,不知道为什么超时,面试官也说看着有问题,本地是正常跑的,有没有大佬帮忙看一下
	

	
	
function minMoney( arr ,  aim ) {     let res=100000     let len=arr.length     let f=false;     function deep(timer,sum){         if(sum>aim)return;         if(sum===aim){res=Math.min(res,timer);f=true;return;}         for(let i=0;i<len;i++){             deep(timer+1,sum+arr[i])         }     }     deep(0,0)     return f?res:-1; }

4.问了学校经历
5.问了选择秋招公司的心理?选了哪些公司
7.对于未来的一个规划?

前面除了算法还好后面反问环境被怼很厉害,算法时候也一直说有问题但是我真的没找出来
另外对于我的实践肯定是有看法的,所以是凉经,如果面试官高抬贵手就点美团外卖吧。。。
#面经##美团##前端工程师##校招#
全部评论
我也是感觉代码有问题。我看你只有deep(timer+1,sum+arr[i])却没有deep(timer+1,sum)。你的意思是必须顺着换吗,不应该是比如,多加一个2块钱多了,那就不加,而是选择多加1块钱去试吗?我对你的那个for i的循环理解是,从第i个选项开始连续选?
1 回复 分享
发布于 2020-08-28 15:48
朋友  你过了吗
点赞 回复 分享
发布于 2020-09-01 17:17
请问是零钱找零那道吗
点赞 回复 分享
发布于 2020-08-28 20:48
去力扣找了一个解答是动规优化的,emmm我感觉我那个的主要问题还是优化不到位,应该先排序然后从大的开始往小的找,最坏情况才会是我那个算法的情况,而且用了k还会少很多分支 var minMoney = function(coins, amount) {     if(!amount) return 0;     coins.sort((a,b) => b - a);     let ans = Infinity;//最小面值数     let len = coins.length;     coinChange(amount, 0, 0);//当前总金额,当前coins的下标,当前面值数     return ans === Infinity ? -1 : ans;     function coinChange(amount, index, count) {         if(!amount) {             ans = Math.min(ans, count);             return;         }         if(index === len) return;         for(let k = (amount / coins[index])|0; k >= 0 && k + count < ans; k --) {             //k + count < ans 优化剪枝             //k用来贪心思想             //k从(amount / coins[index])|0开始,所以不会小于0             coinChange(amount - k * coins[index], index + 1,count + k);         }     } };
点赞 回复 分享
发布于 2020-08-28 16:30
算法的空间复杂度给的n,时间给的n*m,所以一开始就没有去往dp想结果deep坑好像更大orz
点赞 回复 分享
发布于 2020-08-28 15:30
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2020-08-28 14:57

相关推荐

04-02 16:28
苏州大学 Java
之前说结束写面经的,挂完休息两天来写了(我感觉我这段经历很奇怪,前两面简单得离谱,估计跟部门有关)——————————————————————————————————————————3.24&nbsp;一面(3.26&nbsp;约二面)Java里的值传递&nbsp;vs&nbsp;引用传递什么是反射、优缺点类加载机制jvm指令,方法调用其它方法时的jvm指令jdk17的特性nio、bio、aio&nbsp;的区别粘包拆包的原因、解决方法redis的优缺点线程&nbsp;vs&nbsp;进程死锁OSI七层模型http&nbsp;vs&nbsp;httpshttps怎么加密单例bean线程安全?jdk动态代理&nbsp;vs&nbsp;CGLIB@Autowire&nbsp;vs&nbsp;@Resource了解golang...
沙福林:三面这个你问他,你知道吗?你说出来我想学习一下。用lua脚本是为了保证一捆redis命令可以一起成功或者失败,并且只需要发送一次请求。java中虽然可以用redis的事务,但是事务是把所有命令放在队列然后统一提交,这个提交并不会一起成功一起失败,而是成功的成功,失败的失败,这样的话很难保证一致性,此外redis的事务也不是一起发请求,而是一起执行,逐个发请求,从性能开销和实现效果角度出发,必须用lua脚本。
点赞 评论 收藏
分享
评论
3
10
分享

创作者周榜

更多
牛客网
牛客企业服务