美团技术面试指南与问题集.docxVIP

  • 0
  • 0
  • 约1.24万字
  • 约 33页
  • 2026-01-29 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年美团技术面试指南与问题集

一、编程基础题(共5题,每题10分,总分50分)

题目1(10分)

请实现一个函数,输入一个正整数n,返回n的阶乘。要求不能使用递归,并考虑大数问题。

答案:

java

publicstaticBigIntegerfactorial(intn){

BigIntegerresult=BigInteger.ONE;

for(inti=2;i=n;i++){

result=result.multiply(BigInteger.valueOf(i));

}

returnresult;

}

解析:

使用Java的BigInteger类解决大数问题。普通整数类型在超过21位后就会溢出,而BigInteger可以处理任意精度的整数。通过循环乘以每个数来计算阶乘,避免递归带来的栈溢出问题。

题目2(10分)

给定一个字符串,请实现一个函数,判断该字符串是否是有效的括号组合(只考虑()[]{})。要求时间复杂度为O(n)。

答案:

java

publicstaticbooleanisValidParentheses(Strings){

StackCharacterstack=newStack();

MapCharacter,Charactermap=newHashMap();

map.put(),();

map.put(},{);

map.put(],[);

for(charc:s.toCharArray()){

if(map.containsValue(c)){

stack.push(c);

}elseif(map.containsKey(c)){

if(stack.isEmpty()||stack.pop()!=map.get(c)){

returnfalse;

}

}else{

//忽略非括号字符

}

}

returnstack.isEmpty();

}

解析:

使用栈结构解决括号匹配问题。遍历字符串,遇到左括号入栈,遇到右括号时检查栈顶是否为对应左括号。如果匹配则弹出,否则返回false。最后栈为空则有效。时间复杂度为O(n),空间复杂度为O(n)。

题目3(10分)

请实现一个函数,找出数组中重复次数超过一半的元素。假设数组非空。

答案:

java

publicstaticintmajorityElement(int[]nums){

intcount=0;

Integercandidate=null;

for(intnum:nums){

if(count==0){

candidate=num;

}

count+=(num==candidate)?1:-1;

}

//验证候选者是否有效

count=0;

for(intnum:nums){

if(num==candidate){

count++;

}

}

returncountnums.length/2?candidate:-1;

}

解析:

采用摩尔投票算法。首先遍历数组,找到候选者:当计数为0时将当前元素设为候选者,然后每遇到一次候选者就+1,遇到其他就-1。最后候选者就是多数元素。需要二次验证确保正确性。

题目4(10分)

实现一个LRU(最近最少使用)缓存,支持get和put操作。缓存容量为capacity。

答案:

java

classLRUCache{

privateintcapacity;

privateMapInteger,Integercache;

privateDequeIntegerdeque;

publicLRUCache(intcapacity){

this.capacity=capacity;

cache=newLinkedHashMap(capacity,0.75f,true);

deque=newLinkedList();

}

publicintget(intkey){

if(!cache.containsKey(key)){

return-1;

}

//更新使用顺序

deque.remove(key);

deque.addLast(key);

returncache.get(key);

}

publicvoidput(intkey,intvalue){

if(cache.containsKey(key)){

cache.put(key,value);

deque.remove(

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档