2021春招美团算法笔试题

本文整理了2021年美团春季招聘算法笔试题目,涵盖流、多重集合、奶茶问题、值日安排及溶液浓度计算等多个方面,适合求职者备考参考。

2021春招美团算法笔试题整理,供大家参考!
(图片来源于网络,转载请联系博主)

一、流

小美最近在学操作系统。
流是操作系统中一个重要的概念。
小美自己也实现了一个类似于 /dev/random 的设备,但是它只能提供预先设定好但循环不断的某个小写字母排列。
在这里插入图片描述

package MT;

import java.util.Scanner;

public class MT1 {
   
   
    public static void main(String[] args) {
   
   
        Scanner sc = new Scanner(System.in);
        String in1 = sc.next();
        String in2 = sc.next();
        char[] chars1 = in1.toCharArray();
        char[] chars2 = in2.toCharArray();
        int length1 = chars1.length;
        int length2 = chars2.length;
        int count = 0;
        int i = 0;
        while(true) {
   
   
            for (int j = 0; j < length1; j++) {
   
   
                if (chars1[j] != chars2[i]) {
   
   
                    count++;
                } else  {
   
   
                    if (i < length2-1) i++;
                    else break;
                }
            }
            if (i == length2-1) break;
        }
        System.out.println(count);
    }
}

二、多重集合

小团现在有两个等大的多重集合A和B,她现在想让A集合和B集合相等。
在这里插入图片描述

package MT;

import java.util.HashMap;
import java.util.Scanner;

public class MT2 {
   
   
    public static void main(String[] args) {
   
   
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] a = new int[n];
        int[] b = new int[</
美团笔试算法目汇总如下: - **2021春招笔试题 - 学生值日问**:小美和小团的班上有n个人,分别编号为1到n,小美的编号为1,小团的编号为2。给定一个n×n的矩阵`duty`,用于确定每天值日的学生。第一天小美值日,第二天小团值日,从第三天开始,第i天值日的学生编号由`duty[a2 - 1][a1 - 1]`确定,其中`a1`是前一天值日学生的编号,`a2`是当天值日学生的编号。要求根据输入的天数m,计算并输出第m天值日学生的编号。示例输入:`3 7`,`0 3 2`,`3 0 3`,`2 1 0` [^1]。 ```java package MT; import java.util.Scanner; public class MT4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][] duty = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { duty[i][j] = sc.nextInt(); } } System.out.println(studentID(m, duty)); } static int studentID(int m, int[][] dutyTable) { int id = 0; int a1 = 1, a2 = 2; int i = 0; while (i < (m - 2)) { id = dutyTable[a2 - 1][a1 - 1]; a1 = a2; a2 = id; i++; } return id; } } ``` - **美团笔试题目 - 深度优先搜索问**:给定一个二维数组`a`,通过深度优先搜索(DFS)遍历数组元素。根据不同的边界条件,递归调用`dfs`函数进行元素的输出和继续搜索。当数组长度为0时返回 -1,否则通过`dfs`函数进行搜索后返回1 [^2]。 ```java public static int solve(int[][] a) { int N = a.length; if (N == 0) return -1; dfs(a, 0, N - 1, N); return 1; } public static void dfs(int[][] arr, int row, int col, int N) { if (row < N - 1 && col == N - 1) { System.out.println(arr[row][col]); dfs(arr, 0, N - row - 2, N); return; } if (row == N - 1 && col == N - 1) { System.out.println(arr[row][col]); dfs(arr, 1, 0, N); return; } if (row == N - 1 && col < N - 1 && col > 0) { System.out.println(arr[row][col]); dfs(arr, N - col, 0, N); return; } if (row == N - 1 && col == 0) { System.out.println(arr[row][col]); return; } System.out.print(arr[row][col]); System.out.print(" "); dfs(arr, row + 1, col + 1, N); return; } ``` - **2024 - 03 - 23美团春招笔试题**:包含多个问,如K小姐的华丽灯光秀、K小姐的字符串修改、A先生的玩具摆放、K小姐的密码设计、LYA小姐的花园整理、K小姐的树林漫步等。每个问都有相应的问描述、输入格式、输出格式、样例输入、样例输出、数据范围和解及参考代码 [^3]。 - **美团笔试 - 数字查找问**:给定一个长度不超过1000的字符串,字符串仅由数字字符组成。要求找出未出现过的最小正整数,如果所有1 - 9的数字都出现过,则找出出现次数最少的数字,若有多个数字出现次数最少,则输出其中最小的数字,若所有数字都出现过且出现次数相同,则输出1后面跟和出现次数相同数量的0 [^4]。 ```cpp #include <iostream> #include <string.h> using namespace std; int main() { char c[1001]; int su = 0, num[10]; for (int i = 0; i < 10; i++) num[i] = 0; cin >> c; int len = strlen(c); for (int i = 0; i < len; i++) num[c[i] - '0']++; for (int i = 1; i <= 9; i++) if (!num[i]) { cout << i; return 0; } if (!num[0]) { cout << 1 << 0; return 0; } int minn = 10000; for (int i = 0; i <= 9; i++) if (minn > num[i]) minn = num[i]; for (int i = 1; i <= 9; i++) if (num[i] == minn) { while (minn--) cout << i; cout << i; return 0; } cout << 1; while (minn--) cout << 0; cout << 0; return 0; } ```
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值