饿了么笔试 饿了么笔试题 0321

笔试时间:2025年03月21日

历史笔试传送门:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题

题目

对于给定的 n 个整数构成的数组,检查有多少个长度为3的连续子数组b1,b2,b3满足:b1>=b2, b2<=b3。更形象地说,这样的子数组形如'V’状。

输入描述

第一行输入n,表示数组中的元素数量

接下来输入n各整数代表数组元素

输出描述

输出一个整数,代表满足条件的连续子数组数量

样例输入

5

5 1 4 2 3

样例输出

2

参考题解

数组里直接判断即可

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);

    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    int count = 0;
    for (int i = 0; i < n - 2; i++) {
        if (a[i] >= a[i + 1] && a[i + 1] <= a[i + 2]) {
            count++;
        }
    }

    cout << count << endl;
    return 0;
}

Java:[此代码未进行大量数据的测试,仅供参考]

package leetcode;

import java.util.Scanner;

public class nums_v {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];

        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }

        int count = 0;
        for (int i = 0; i < n-3; i++) {
            if (a[i] >= a[i+1] && a[i+1] <= a[i+2]){
                count++;
            }
        }
        System.out.println(count);
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

n = int(input())
a = list(map(int, input().split()))

count = 0
for i in range(n - 2):
    if a[i] >= a[i + 1] and a[i + 1] <= a[i + 2]:
        count += 1

print(count)

第二题

题目

对于给定的长度为 n,仅由小写字母组成的字符串...sn如果有这样的两个不同的位置i和 j,满足i和 j,奇偶性相同且其上的字符 si和 sj;在字母表中相差的位置数小于等于 g,那么我们称i和 j是“有缘分的”。你需要求解,对于给定的 g,字符串s中,有多少对位置是“有缘分的”。字母表的第 1个字母为'a’,第 26 个字母为'z’。两个字符在字母表中的位置差,即为它们在字母表中相隔的字母个数。例如,'a’与'd’之间隔了'b’和'c’两个字母,所以位置差为 2。

输入描述

第一行输入两个整数n, g代表字符串的长度、约束

第二行输入一个长度为n,仅由小写字母组成的字符串s

输出描述

输出一个整数,代表满足条件的"有缘分的"位置对数

样例输入一

3 25

aaa

样例输出一

1

样例输入二

4 1

acbd

样例输出二

2

参考题解

1.分别统计奇数位置和偶数位置的字符频率。2.对每个分组(奇数和偶数),遍历每个字符 c 的频率。对于每个字母,计算其自身组成的字符对数量。如果某个字母出现了 m 次,那么它自身组成的字符对数量为 m * (m - 1) / 2。对于不同的字母对,检查它们在字母表中的位置差的绝对值是否小于等于 g。如果满足条件,则将它们出现次数的乘积累加到结果中。3.最后把奇数分组和偶数分组的结果相加。

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>
#include <vector>
#include <string>
#include <cmath>

using namespace std;

long long calculate(const vector<int>& count, int g) {
    long long sum = 0;
    for (int i = 0; i < 26; ++i) {
        sum += (long long)count[i] * (count[i] - 1) / 2;
        for (int j = i + 1; j < 26; ++j) {
            if (abs(i - j) <= g) {
                sum += (long long)count[i] * count[j];
            }
        }
    }
    return sum;
}

int main() {
    int n, g;
    cin >> n >> g;
    string s;
    cin >> s;

    vector<int> countOdd(26, 0);
    vector<int> countEven(26, 0);

    for (int i = 0; i < n; ++i) {
        char c = s[i];
        if ((i + 1) % 2 == 1) {
            countOdd[c - 'a']++;
        } else {
            countEven[c - 'a']++;
        }
    }

    long long res = 0;
    res += calculate(countOdd, g);
    res += calculate(countEven, g);
    cout << res << endl;

    return 0;
}

Java:[此代码未进行大量数据的测试,仅供参考]

import lava.util.scanner;

public class Main {
 public static void main(Stringll args){
        Scanner 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2025 春招笔试合集 文章被收录于专栏

2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南

全部评论

相关推荐

04-22 13:06
已编辑
南京师范大学 Java
#暑期实习&nbsp;# #日常实习# 暑期收官面了!1.&nbsp;项目中做了哪些优化?(讲了高精度续播)2.&nbsp;项目有哪些模块?(嘴贱说了一个评论模块,这个真不熟)3.&nbsp;评论数据库表这么设计的(可能会有多级评论,我就说了会有parent_id,child_id,详细的记不起来了)4.&nbsp;这种有树形结构关系的,这样设计会不会有什么问题?(递归查询效率低,可能深度分页?)5.&nbsp;那你说说怎么解决深度分页(子查询,延迟关联)6.&nbsp;rpc项目看你用到了NIO,说说NIO7.&nbsp;NIO的多路复用再详细说说(selector,事件驱动?)8.&nbsp;NIO为什么是设计成同步非阻塞,两者不矛盾吗?9.&nbsp;NIO是Selector会阻塞还是主线程会阻塞?10.&nbsp;出了一个场景题,伪代码用户转账,说说你需要考虑什么方面?(函数名:zhuanzhang(id1,id2,money))11.&nbsp;我说要考虑事务,写了个编程式事务,手动提交回滚,用了个try&nbsp;catch?12.&nbsp;项目里面怎么用的事务(我说@Transactional,声明式事务)13.&nbsp;使用@Transactional有什么条件(事务失效)14.&nbsp;你上面写的是不是也有什么问题(@Transactional下的方法被catch,会失效的)15.&nbsp;那怎么解决?(用属性rollbackfor)16.&nbsp;上述你写的转账还有什么问题?(余额没有判断,并且没考虑线程安全,要加锁)17.&nbsp;然后开始讨论锁和事务谁先谁后(好像是我扯到的,各种没听懂,开始拿txt跟我一步步分析,为什么这么做,应该最后觉得有道理)18.&nbsp;算法:判断A是不是B的子树,并分析时间复杂度和空间复杂度(好像复杂度说的不对)19.&nbsp;说说G1垃圾回收器,为什么要分区来回收?不是分了老年代和新生代了吗?
饿了么二面38人在聊 查看38道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务