美團2020春招技術綜合試卷及答案參考

本次春招測試題總共5道題,只有編程,每題20分,總共100分。

題目在劍指和leetcode都有原型題目,之後在分析的時候,也會給出參考。

1. 數字置換

在這裏插入圖片描述
解析:“第i個整數表示將數字i替換爲數字ai”,這直接可以採用哈希表來存儲,相關數據結構的用法和技巧,在《數據結構與算法》的課中數組一章也有詳細講。

關鍵在於如何提高算法時間效率和降低空間效率。

#include <iostream>
using namespace std;

int* fun(long long a,int *b)
{
	int length = 0;
	//cout<<a;
	if(a == 0) return NULL;
	
	if(a<0)
	{
		cout<<"-";
		a = 0-a;
	}
	long long temp = a;	

	while(temp)
	{
		temp /= 10;
		length++;
	}
	//cout<<length<<endl;;
	
	int* arr = new int[length];
	int l = length;
	for(int i = l; i>=0; i--)
	{
		arr[i] = a%10;
		//cout<<arr[i];
		a /= 10;
	}
	
	for(int j = 1; j<=length; j++)
	{
		arr[j] = b[arr[j]-1];
		cout<<arr[j];
	}
	cout<<endl;
	
	return arr;
	
	delete[] arr;
}

void test1()
{
	long long a = 1234567;
	int b[10] = {9,8,7,6,5,4,3,2,1};
	fun(a,b);
}

void test2()
{
	long long a = -12;
	int b[10] = {2,3,7,6,5,4,3,2,1};
	fun(a,b);
}

void test3()
{
	long long a = 73598793378342493;
	int b[10] = {1,3,6,1,6,8,9,1,3};
	fun(a,b);
}

void test4()
{
	long long a = 0;
	int b[10] = {1,3,6,1,6,8,9,1,3};
	fun(a,b);
}


int main()
{
//	long long a = -12;
//	//cin>>a;
//	int b[10] = {0,0,0};
//	
//	int i = 0;
//	while(cin>>b[i])
//		i++;
//	
//	int *p = fun(a,b);
	//cout<<p;
	
	test1();
	test2();
	test3();
	test4();

    return 0;
}

2.同心圓

在這裏插入圖片描述
遞歸/循環: 劍指10:斐波那契數列

課程對應講解:https://edu.csdn.net/course/detail/28681 第二章第一節。

#include <iostream>
#include <math.h>
using namespace std;

double AreaOfCircle(int r2,int r1)
{
	return M_PI*(r2*r2 - r1*r1);
}

double AreaOfRing(int n, int* r)
{
	//(((nums&1)==0)?"偶數":"奇數")
	double result = 0.0;
	if(n == 1)
		return result = M_PI*r[0]*r[0];
		
	if(n == 2)
		return result = AreaOfCircle(r[1],r[0]);
	
	if((n&1)==0) //the number of r is even
	{
		int i = 1;
		double temp = 0;
		while(2*i <= n)
		{
			temp = AreaOfCircle(r[2*i-1],r[2*i-2]);
			result += temp;
			i++;
		}	
	}
	
	else //the number of r is odd
	{
		int i = 0;
		double temp = M_PI*r[0]*r[0];
		result = 0;
		while(2*i+1 <= n)
		{
			temp = AreaOfCircle(r[2*i+1],r[2*i]);
			result += temp;
			i++;
		}
	} 
	
	return result>0?result:-result;
}

void test1()
{
	int n = 1;
	int r[] = {3};
	printf("test1: %.5f\n",AreaOfRing(n,r));
}

void test2()
{
	int n = 8;
	int r[] = {1,2,3,4,5,6,7,8};
	printf("test2: %.5f\n",AreaOfRing(n,r));
}

void test3()
{
	int n = 5;
	int r[] = {1,2,3,4,5};
	printf("test3: %.5f\n",AreaOfRing(n,r));
}


int main()
{	
	test1();
	test2();
	test3();

    return 0;
}

3.套娃前綴和

在這裏插入圖片描述

4.小倉的射擊練習3

在這裏插入圖片描述

5. 子序列計數

在這裏插入圖片描述


推薦閱讀:

[1] 數據結構與算法 | 你知道快速排序,那你知道它的衍生應用嗎?Partition函數

[2] 數據結構與算法 | 數據結構中到底有多少種“樹”?一文告訴你

[3] 數據結構與算法 | 二分查找:劍指offer53 在排序數組中查找數字

[4] 2020字節跳動秋招筆試題解析與代碼分享(持續更新中)

[5] 華爲研發編程測試題(四)試題及答案參考

關注微信公衆號:邁微電子研發社,回覆獲取更多精彩內容。
在這裏插入圖片描述

△微信掃一掃關注「邁微電子研發社」公衆號

知識星球:社羣旨在分享AI算法崗的秋招/春招準備攻略(含刷題)、面經和內推機會、學習路線、知識題庫等。

在這裏插入圖片描述

△掃碼加入「邁微電子研發社」學習輔導羣

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章