字节跳动 - BSP驱动开发工程师 - 笔试

❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗

alt

本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。

岗位:BSP驱动开发工程师-OS

题型:4 道编程题

1、编程题

1.1

小红的三消游戏:

小红在玩一个三消游戏,游戏中 n 个球排成一排,每个球都有一个颜色。若有 3 个颜色相同的球连在一起,则消除这 3 个球,然后剩下的球会重新连在一起。在没有 3 个颜色相同的球连在一起时,小红可以在任意一个球的左边(或右边)添加一个任意颜色的球。

小红觉得这个游戏很难,因此她准备按任意顺序重新排序这 n 个球。小红想知道在她重新排序这 n 个球后,最少需要添加多少个球才可以消除所有的球。

输入描述:

第一行输入 1 个整数 n(1 ≤ n ≤ 10^5),表示球的数量。
第二行输入 n 个整数 ai(1 ≤ a ≤ 10^9),表示每个球的颜色。

输出描述:

输出一个整数表示答案。

示例:

输入:
6
3 1 2 3 1 3

输出:3

说明:
重新排序成 [1,2,1,3,3,3],3 个颜色为 3 的球可以直接消除,变成 [1,2,1]然后在第 1 个球右边增加 2 个颜色为 2 的球,变成 [1,2,2,2,1],消除 3 个颜色为 2 的球;最后在第 1 个球左边增加 1 个颜色为 1 的球,变成 [1,1,1],消除 3 个颜色为 1 的球。

解答:

#include <stdio.h>
#include <stdlib.h>

int compare(const void* a, const void* b) 
{
    return (*(int*)a - * (int*)b);
}

int minAdditions(int* arr, int n) 
{
    int count = 0;

    qsort(arr, n, sizeof(int), compare);

    for (int i = 0; i < n; ) 
    {
        int j = i;
        while (j < n && arr[j] == arr[i]) {
            j++;
        }

        int length = j - i;

        if (length < 3) {
            count += 3 - length;
        }

        i = j;
    }

    return count;
}

int main() {
    int n;

    scanf("%d", &n);

    int arr[n];

    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int result = minAdditions(arr, n);
    printf("%d\n", result);

    return 0;
}

1.2

小红的特殊数组:

小红定义一个数组为特殊数组:这个数组大小至少为 3 ,只由两种数字组成,且其中一种数字恰好出现一次。例如:[1,1,4][1,4,1] 是特殊数组(长度为 3,只有 1 和 4 组成且 4 恰好出现一次),[1,4][5,1,4][1,1,1] 都不是特殊数组。

小红有一个长度为 n 的数组 a,她想知道这个数组有多少个子数组是特殊数组。

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

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,同时还整理了嵌入式软件相关的八股知识。专栏内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,希望能帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论

相关推荐

星纵物联8.8&nbsp;硬件工程师技术面面试官挺好的,问的基本都是项目相关1.自我介绍2.你的研究方向讲一下,为什么想做硬件3.挑一个你最熟悉的项目讲一下4.你在里面做了什么内容5.为什么用这个拓扑,拓扑原理讲一下,这个拓扑有什么优势吗6.器件选型怎么考虑的7.电路板怎么调试的,考虑到负载了吗,怎么联调的8.功率这么大,做了哪些注意措施9.项目创新点是什么10.产品投入生产使用了吗11.板子之间数据怎么传输的,通讯协议是什么12.为什么用这个主控13.有备选方案吗。反问1.培养方案2.工作强度3.产品方向4.多久出结果星纵物联25届校园招聘进行中&nbsp;以下岗位仍有缺口公司简介:厦门星纵物联科技有限公司是专业的数字感知产品提供商,专注于智能物联网设备的研发,生产与销售招聘岗位:行业产品、海外市场、开发、测试、产品经理、技术支持、项目经理、售前工程师、单片机开发、硬件薪酬福利:极富竞争力的薪酬待遇、一年两次的调薪机会、半年奖、年终奖、项目奖金、团队奖金、营销奖金、职级晋升、多元化激励、员工商业公寓、健康保障、工会福利、五险一金、安居计划、快乐活动、健身俱乐部、人才基金、生活补贴、贴心礼金、年度旅游、落户厦门、五折租房、节日关怀、温馨假期等投递链接:https://milesight.zhiye.com/campus/jobs推荐码:ESVMBS(内推简历优先筛选,加速流程推进)大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽 #春招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#内推码#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#秋招#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#提前批#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#星纵物联#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务