美团技术面试全解析从笔试到面试.docxVIP

  • 0
  • 0
  • 约8.13千字
  • 约 23页
  • 2026-01-27 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年美团技术面试全解析:从笔试到面试

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

1.题目:

请实现一个函数,输入一个整数数组,返回数组中所有奇数数字的平方和。例如,输入`[1,2,3,4,5]`,返回`12+32+52=35`。

答案:

java

publicintsumOfOddSquares(int[]nums){

intsum=0;

for(intnum:nums){

if(num%2!=0){

sum+=numnum;

}

}

returnsum;

}

解析:

-遍历数组,判断每个数字是否为奇数(`num%2!=0`)。

-如果是奇数,计算其平方并累加到`sum`中。

-时间复杂度:O(n),空间复杂度:O(1)。

2.题目:

给定一个字符串,请反转字符串中的每个单词,但保持单词顺序不变。例如,输入`theskyisblue`,返回`eh_tkysieulb`。

答案:

python

defreverseWords(s:str)-str:

words=s.split()

reversed_words=[word[::-1]forwordinwords]

return.join(reversed_words)

解析:

-使用`split()`将字符串按空格分割成单词列表。

-反转每个单词(`word[::-1]`)。

-用空格连接反转后的单词列表。

-时间复杂度:O(n),空间复杂度:O(n)。

3.题目:

请实现一个函数,判断一个整数是否是回文数(正序和倒序相同)。例如,`121`是回文数,`123`不是。

答案:

javascript

functionisPalindrome(x){

if(x0)returnfalse;

letoriginal=x;

letreversed=0;

while(x0){

reversed=reversed10+x%10;

x=Math.floor(x/10);

}

returnoriginal===reversed;

}

解析:

-负数不可能是回文数。

-通过反转数字的每一位,比较反转前后是否相同。

-时间复杂度:O(log10(x)),空间复杂度:O(1)。

4.题目:

给定一个非空链表,请判断链表是否存在环。可以返回`true`或`false`。例如,`1-2-3-2`存在环。

答案:

java

publicbooleanhasCycle(ListNodehead){

if(head==null||head.next==null)returnfalse;

ListNodeslow=head,fast=head.next;

while(fast!=slow){

if(fast==null||fast.next==null)returnfalse;

slow=slow.next;

fast=fast.next.next;

}

returntrue;

}

解析:

-使用快慢指针,慢指针每次移动一步,快指针每次移动两步。

-如果存在环,快慢指针最终会相遇;否则,快指针会到达链表末尾。

-时间复杂度:O(n),空间复杂度:O(1)。

5.题目:

请实现一个函数,输入两个正整数`m`和`n`,返回它们的最大公约数(GCD)。例如,`GCD(12,18)=6`。

答案:

python

defgcd(m:int,n:int)-int:

whilen!=0:

m,n=n,m%n

returnm

解析:

-使用欧几里得算法,通过辗转相除法计算GCD。

-时间复杂度:O(logmin(m,n)),空间复杂度:O(1)。

二、数据结构与算法(共5题,每题10分,总分50分)

1.题目:

请实现一个`LruCache`类,支持`get`和`put`操作,缓存容量为`capacity`。例如:

python

cache=LruCache(2)

cache.put(1,1)

cache.put(2,2)

cache.get(1)#返回1

cache.put(3,3)#去除键2

cache.get(2)#返回-1(未找到)

答案:

python

classNode:

def__init__(self,key=0,value

文档评论(0)

1亿VIP精品文档

相关文档