众安保险笔试 众安保险笔试题 0910

笔试时间:2025年9月10日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题:学堂分组

题目:小葵花学堂共有n名学生报名入学测试,小A教授希望将所有学生重新排序,然后根据成绩分组,每组人数不超过3。

分组规则如下:

  • 如果组内有三名学生,则该组最高成绩和最低成绩之差不超过10
  • 如果组内有两名学生,则该组最高成绩和最低成绩之差不超过20
  • 如果组内仅有一名学生,则对成绩不作要求

要求:每位学生都需要,且恰好需要被分配到一个组中。在上述规则下,最少需要多少组?

输入描述

第一行输入一个整数n,表示学生人数;第二行输入n个整数,表示每位学生的入学测试成绩。

输出描述

输出一个整数,表示在上述分组规则下,最少需要的组数。

样例输入

3

100 100 100

样例输出

1

样例说明:在这个样例中,三名学生成绩均相同,可组成一个三人组,故最少需要1组。

参考题解

解题思路:

  1. 先把成绩排序
  2. 从左到右依次尝试把学生放进一个组: 先尽量凑三个人,如果能满足差值≤10,就成一个三人组如果不行,再试能不能组成两人组(差值≤20)否则只能单独成组
  3. 每次确定一组后,从数组中移到下一批人,直到所有人分完
  4. 这种贪心策略可以保证组数最少

C++:

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

int main() {
    int n;
    cin >> n;
    vector<int> scores(n);
    for (int i = 0; i < n; i++) {
        cin >> scores[i];
    }
    
    sort(scores.begin(), scores.end());
    
    int groups = 0;
    int i = 0;
    while (i < n) {
        groups++;
        // 先尝试三人组
        if (i + 2 < n && scores[i + 2] - scores[i] <= 10) {
            i += 3;
        } else if (i + 1 < n && scores[i + 1] - scores[i] <= 20) {
            // 否则尝试两人组
            i += 2;
        } else {
            // 否则单人组
            i += 1;
        }
    }
    
    cout << groups << endl;
    return 0;
}

Java:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] scores = new int[n];
        for (int i = 0; i < n; i++) {
            scores[i] = sc.nextInt();
        }
        
        Arrays.sort(scores);
        
        int groups = 0;
        int i = 0;
        while (i < n) {
            groups++;
            // 先尝试三人组
            if (i + 2 < n && scores[i + 2] - scores[i] <= 10) {
                i += 3;
            } else if (i + 1 < n && scores[i + 1] - scores[i] <= 20) {
                // 否则尝试两人组
                i += 2;
            } else {
                // 否则单人组
                i += 1;
            }
        }
        
        System.out.println(groups);
    }
}

Python:

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

scores.sort()

groups = 0
i = 0
while i < n:
    groups += 1
    # 先尝试三人组
    if i + 2 < n and scores[i + 2] - scores[i] <= 10:
        i += 3
    elif i + 1 < n and scores[i + 1] - scores[i] <= 20:
        # 否则尝试两人组
        i += 2
    else:
        # 否则单人组
        i += 1

print(groups)

第二题:小红的生日查询

题目:小红的出生日期是y年m月d日。小红想知道,从a年b月c日到a'年b'月c'日,她一共过了多少天的生日?

假设出生的那一天也算小红0岁生日。且小红在a'年b'月c'日并未死亡。如果小红是闰年2月29日出生,那么她在非闰年2月28日和闰年2月29日过生日。

输入描述

有多组数据,第一行输入一个整数T,代表数据组数。对于每组数据,第一行输入三个正整数y,m,d,表示小红的出生年月日。第二行输入六个正整数a,b,c,a',b',c',代表小红的询问。保证年份范围在[1,3000]之间,且查询的时间合法。查询的截止日在起始日的后面。

输出描述

输出一个整数,代表小红的过生日的次数。

样例输入

1

1993 9 21

1990 1 1 2000 12 31

样例输出

8

参考题解

解题思路:

  1. 输入处理:读取小红的出生日期和查询的起始、截止日期
  2. 遍历年份:从小红的出生年份到查询截止年份
  3. 构造每年的生日: 特殊情况:如果是2月29日出生 闰年:生日是2月29日平年:生日是2月28日普通生日:直接使用出生月日构造生日
  4. 判断生日是否落在查询区间内并计数
  5. 使用闰年判断规则:能被4整除且不能被100整除,或者能被400整除

C++:

#include <iostream>
using namespace std;

bool isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

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

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

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

全部评论

相关推荐

本人bg:双非本,两个实习经历,其中一个是非IT类的大厂实习。两个月前投递的众安,没动静以为挂掉了19号给我发邮件约面,约的21号晚上5点。面试岗位:保险中台后端开发(全栈)面后整体感觉:好像是被KPI了,面试官全程没开摄像头,基本是你问我答,无算法,项目一句没问纯我自己介绍,上来一句你是什么学历,给我整不会了目前现状:昨天晚上面试官下班前开面,今天早上上班秒挂,直接感谢信。果然不出所料是KPI,我真的无语了。。。面试八股我都是嘎嘎乱杀,状态非常好,就因为双非学历给我淘汰吗???众安一面(45min)自我介绍(2min)项目介绍(10min)1.Object有哪些方法2.hashcode与equals为什么要重写3.hashmap的底层自己扩展:hashmap为什么选择红黑树而不是B+树,为什么阈值是8,为什么有2的缓冲区,concurrenthashmap的底层,为什么jdk8之前用分段锁,jdk8之后cas+synchronized怎么保证线程安全的4.hashmap的扩容(直接说了concurrentHashMap的并发扩容)5.hashmap的负载因子是怎么计算的(没理解意图但是尽力在回答很多层面了,回答了两次,第一次被否定说答偏咯)6.HTTP与HTTPS的区别7.HTTPS是如何保证速度的(答的是对称加密与非对称加密的点)8.java中new一个对象的过程9.对象怎么分配的空间(第一次打错方向了之后改正成垃圾回收器的领域感觉差点意思还是没理解)自己扩展:标记清除算法10.volatile的底层原理自己扩展:CPU流水线技术&nbsp;JMM内存模型&nbsp;内存屏障&nbsp;append-before11.mysql的隔离级别自己扩展:MVCC12.使用索引与正常查询的区别自己扩展:索引数据结构&nbsp;下推索引&nbsp;覆盖索引13.kafka如何解决线上一亿数据无法及时消费的问题(答的扩展服务器或限速,面试官说歪了但是跳过了,因为我简历也没写kafka)14.ai是怎样协助开发的反问环节&nbsp;应聘的是啥岗位,用的啥技术栈
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务