超聚变 - 嵌入式软件开发工程师 - 笔试

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

alt

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

岗位:25届嵌入式软件开发工程师(测试装备方向)

题型:3 道编程题

1、编程题

1.1

找 2 倍数字:

有一组正整数(大于 0)序列,请问有多少对数字满足:其中一个数字是另外一个数字的 2 倍

输入描述:

输入一个数字 T,表示有 T 组测试数据;每个测试数据输入一个数字 n( 1<n<100),表示有多少数字;然后再输入数字,空格隔开;

输出描述:

对于每组测试数据,输出满足条件的组数。

示例1:

输入:
2
6
1 3 5 7 9 11
7
6 2 4 3 33 10 1

输出:
0
3

解答(90%通过率):

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

int main() {
    int T;
    scanf("%d", &T);

    while (T--) {
        int n;
        scanf("%d", &n);
        int* arr = (int*)malloc(n * sizeof(int));
        for (int i = 0; i < n; i++) {
            scanf("%d", &arr[i]);
        }

        int count = 0;
        int hash[201] = {0};

        for (int i = 0; i < n; i++) {
            if (arr[i] <= 200) {
                hash[arr[i]]++;
            }
        }

        for (int i = 0; i < n; i++) {
            if (arr[i] > 0 && arr[i] * 2 <= 200 && hash[arr[i] * 2] > 0) {
                count++;
                
                hash[arr[i] * 2]--;
            }
        }

        printf("%d\n", count);
        free(arr);
    }

    return 0;
}

1.2

搜索矩阵:

实现一个程序 search_matrix(matrix),参数 matrix 是一个仅包含 0 或 1 两种数字的矩阵,程序应返回输入矩阵中包含的最大正方形子矩阵(长和宽相等)的区域面积。

例如:
如果 matrix 是[“101011111”,“0000000111”, “1010110111”,“0000110001”],那么它看起来像下面的矩阵:

1 0 1 0 1 1 1 1 1 1
0 0 0 0 0 0 0 1 1 1
1 0 1 0 1 1 0 1 1 1
0 0 0 0 1 1 0 0 0 1

对于上面的输入,最大的子矩阵是一个 3×3 的矩阵,程序只要返回最大子矩阵的面积即可,如上面的矩阵即返回 9(3×3)

输入描述:

第一行输入为一个数字 N,代表下面有几行
第 2 行到第 N+1 行是代表矩阵的 0 和 1 组成的字符串,每行的长度相同

输出描述:

返回一个数字,代表输入矩阵的最大正方子矩阵的面积。

示例 1:

输入:
3
110
111
110

输出:4

示例 2:

输入:
1
1001111111

输出:1

说明: 可能存在多个子矩阵,返回面积最大的一个

示例 3:

输入:
8
1010111111
0000000111
1010110111
0000111111
1010111111
0000001111
1010111111
0000110001

输出:16

说明:可能存在多个子矩阵,返回面积最大的一个

解答:

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

int search_matrix(char** matrix, int N) {
    if (N == 0) return 0;
    int M = strlen(matrix[0]);
    int max_side = 0;
    int **dp = (int **)malloc(N * sizeof(int *));

    for (int i = 0; i < N; i++) {
        dp[i] = (int *)malloc(M * sizeof(int));
        memset(dp[i], 0, M * sizeof(int));
    }

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            if (matrix[i][j] == '1') {
                if (i == 0 || j == 0) {
                    dp[i][j] = 

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

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

全部评论
点赞 回复 分享
发布于 03-31 11:11 河南

相关推荐

03-31 11:27
已编辑
海康威视_研究院_前端开发
真实工作体验!本人双非本,去年入职【工作感受】&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;部门氛围很轻松,ld和其他领导都很和善,平时在电梯里遇见还能闲聊两句。部门中午晚上都一起在食堂吃饭&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mt对新员工和实习生都很贴心(亲眼所见,实习生实习结束后mt还给实习生看简历讲项目讲亮点),我试用期期间mt和ld都给了我超级多的帮助和建议,进步飞快!部门经常会有一些业务技术汇报,学到了很多东西!!【工作时间】&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;早上8:30&nbsp;-9:30弹性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;晚上5:00-6:00弹性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每周一二四可能要稍微加一点班,周三周五不加班最后贴几张食堂的美食,食堂的伙食是真的不错!🔥海康威视2025届春招补招+26届超新星暑期实习启动啦【关于我们】海康威视成立于2001年,是一家专注技术创新的科技公司,致力于将物联感知、人工智能、大数据技术服务于干行百业,引领智能物联新未来🔥【招聘岗位】算法/网络安全/大数据类;器件电路类;软件/嵌入式类;硬件/结构类;营销/技术支持类;测试/支撑类;供应链类;体验设计类;综合类【工作地点】杭州、武汉、西安、成都、上海、北京、石家庄、全国90+城市和海外多地【福利待遇】有竞争力的薪资+影响世界的宽广舞台+持续可期的成长回报+踏实专注的做事氛围+接轨市场的创新实践👇【投递链接】👇http://campushr.hikvision.com/【内推码】2194TX(简历优先筛选,后续有流程上的问题欢迎随时联系,本人全程跟进流程,前端的同学可以帮忙看简历!)
海康威视
|
实习
|
超多精选岗位
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务