华为OD机试 - 信号发射和接收 - 矩阵(Python/JS/C/C++ 2024 E卷 200分)

news2024/12/28 11:43:04

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

有一个二维的天线矩阵,每根天线可以向其他天线发射信号,也能接收其他天线发射的信号。为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收到东侧或南侧的信号。

每根天线有自己的高度值anth,每根天线的高度存储在一个二维数组Q中,各个天线的位置用[r, c]表示,r代表天线的行位置(从0开始编号),c代表天线的列位置(从0开始编号)。

在某一方向(东向或南向),某根天线可以收到其他天线的信号(也可能收不到任何其他天线的信号),对任一天线X和天线Y,天线X能接收到天线Y信号的条件是:

天线X在天线Y的东边或南边

天线X和天线Y之间的其他天线的高度都低于天线X和天线Y,或天线X和天线Y之间无其他天线,即无遮挡。

如下面示意:

在这里插入图片描述
在天线矩阵中的第0行上:

天线[0, 0]接收不到任何其他天线的信号;
天线[0, 1]可以接收到天线[0, 0]的信号;
天线[0, 2]可以接收到天线[0, 1]的信号;
天线[0, 3]可以接收到天线[0, 1]和天线[0, 2]的信号;
天线[0, 4]可以接收到天线[0, 3]的信号;
天线[0, 5]可以接收到天线[0, 4]的信号。

在天线的第0列上:

天线[0, 0]接收不到任何其他天线的信号;
天线[1, 0]可以接收到天线[0, 0]的信号;
天线[2, 0]可以接收到天线[1, 0]的信号;
天线[3, 0]可以接收到天线[2, 0]和天线[0, 0]的信号;
天线[4, 0]可以接收到天线[3, 0]的信号;
天线[5, 0]可以接收到天线[3, 0]和天线[4, 0]的信号。

给一个m行n列的矩阵(二维矩阵),矩阵存储着天线的高度,求出每根天线可以接收到多少根其他天线的信号,结果输出到m行n列的矩阵(二维矩阵)中。

二、输入描述

输入为1个m行n列的矩阵(二维矩阵)anth[m][n],矩阵存储着天线的高度,高度[anth[r][c]]为大于0的整数。

第一行为输入矩阵的行数和列数,如:

m n

第二行为输入矩阵的元素值,按行输入,如:

anth[0][0] anth[0][1] … anth[0][n-1]
anth[1][0] anth[1][1] … anth[1][n-1]

anth[m-1][0] … anth[m-1][n-1]

三、输出描述

输出一个m行n列的矩阵(二维数组)ret[m][n],矩阵存储每根天线能接收到多少根其他天线的信号,根数为ret[r][c]。

第一行为输出矩阵的行数和列数,如:

m n

第二行为输出矩阵的元素值,按行输出,如:

ret[0][0] ret[0][1] … ret[0][n-1]
ret[1][0] ret[1][1] … ret[1][n-1]

ret[m-1][0] … ret[m-1][n-1]

备注

1 ≤ m ≤ 500
1 ≤ n ≤ 500
0 < anth[r][c] < 10^5

四、测试用例

测试用例1:

1、输入

1 6
2 4 1 5 3 3

2、输出

1 6
0 1 1 2 1 1

3、说明

输入为1行6列的天线矩阵的高度值

[2 4 1 5 3 3]

输出为1行6列的结果矩阵

[0 1 1 2 1 1]

测试用例2:

1、输入

2 6
2 5 4 3 2 8 9 7 5 10 10 3

2、输出

2 6
0 1 1 1 1 4
1 2 2 4 2 2

3、说明

输入为2行6列的天线矩阵高度值

[2 5 4 3 2 8]
[9 7 5 10 10 3]

输出为2行6列的结果矩阵

[0 1 1 1 1 4]
[1 2 2 4 2 2]

五、解题思路

1、问题理解

给定一个m x n的二维矩阵anth,表示天线的高度。每根天线可以向东(右)和向南(下)发射信号。因此,每根天线只能接收到来自西(左)或北(上)的信号。对于任意两个天线Y和X,天线X可以接收到天线Y的信号的条件是:

  • Y位于X的西边或北边。
  • 在Y和X之间的所有天线(沿行或列)都比Y和X的高度小,或者Y和X之间没有其他天线(即直接相邻)。

2、具体步骤

  1. 输入读取:
    • 使用Scanner读取矩阵的行数m和列数n。
    • 读取矩阵anth的元素值。
  2. 初始化结果矩阵:
    • 创建一个m x n的结果矩阵ret,用于存储每根天线可以接收到的信号数量。
  3. 遍历每个天线:
    • 对于每根天线X(位置[r][c]),分别向西(同一行,列索引减小)和向北(同一列,行索引减小)查找所有可能的天线Y。
    • 对于每个方向,检查Y到X之间是否满足条件:
    • 如果Y和X之间没有其他天线,则Y可以向X发送信号。
    • 如果Y和X之间有天线,所有中间天线的高度都小于Y和X的最小高度,则Y可以向X发送信号。
    • 将满足条件的Y数量累加到ret[r][c]中。
  4. 输出结果:
    • 按照题目要求的格式输出结果矩阵ret。

六、Python算法源码

# AntennaSignalReceiver.py
# 定义天线信号接收者问题的解决方案

# 导入必要的模块
import sys

def main():
    # 读取输入的行数m和列数n
    try:
        m, n = map(int, sys.stdin.readline().split())
    except:
        # 如果读取失败,退出程序
        print("输入格式错误,无法读取行数和列数。")
        return

    # 初始化天线高度矩阵anth
    anth = []
    for _ in range(m):
        try:
            row = list(map(int, sys.stdin.readline().split()))
            if len(row) != n:
                print(f"输入的列数与预期不符,预期{n}列,实际{len(row)}列。")
                return
            anth.append(row)
        except:
            print("输入格式错误,无法读取天线高度。")
            return

    # 初始化结果矩阵ret,所有元素初始化为0
    ret = [[0 for _ in range(n)] for _ in range(m)]

    # 遍历每个天线位置
    for r in range(m):
        for c in range(n):
            count = 0  # 当前天线可以接收到的信号数量

            # 向西方向查找(同一行,列索引减小)
            for yc in range(c - 1, -1, -1):
                can_receive = True  # 标记是否可以接收来自该天线的信号
                # 计算当前天线和候选天线的最小高度
                min_height = min(anth[r][c], anth[r][yc])
                # 检查候选天线和当前天线之间的所有天线
                for kc in range(yc + 1, c):
                    if anth[r][kc] >= min_height:
                        can_receive = False  # 存在高度不满足条件的天线
                        break
                if can_receive:
                    count += 1  # 可以接收来自该天线的信号

            # 向北方向查找(同一列,行索引减小)
            for yr in range(r - 1, -1, -1):
                can_receive = True  # 标记是否可以接收来自该天线的信号
                # 计算当前天线和候选天线的最小高度
                min_height = min(anth[r][c], anth[yr][c])
                # 检查候选天线和当前天线之间的所有天线
                for kr in range(yr + 1, r):
                    if anth[kr][c] >= min_height:
                        can_receive = False  # 存在高度不满足条件的天线
                        break
                if can_receive:
                    count += 1  # 可以接收来自该天线的信号

            # 将计数结果存入结果矩阵ret
            ret[r][c] = count

    # 输出结果矩阵的行数和列数
    print(f"{m} {n}")

    # 输出结果矩阵的元素值,按行输出
    for row in ret:
        print(' '.join(map(str, row)))

if __name__ == "__main__":
    main()

七、JavaScript算法源码

// AntennaSignalReceiver.js
// 定义天线信号接收者问题的解决方案

// 使用Node.js的readline模块读取输入
const readline = require('readline');

// 创建接口实例
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// 初始化输入数据存储
let inputLines = [];
let m = 0, n = 0;
let currentRow = 0;

rl.on('line', (line) => {
    if (line.trim() === '') return; // 忽略空行
    inputLines.push(line.trim());
    // 读取行数和列数
    if (inputLines.length === 1) {
        const dimensions = line.trim().split(' ').map(Number);
        m = dimensions[0];
        n = dimensions[1];
    }
    // 读取天线高度矩阵
    if (inputLines.length > 1 && inputLines.length <= m +1) {
        currentRow++;
    }
    // 当所有输入读取完毕,开始处理
    if (inputLines.length === m +1) {
        rl.close();
    }
}).on('close', () => {
    // 解析天线高度矩阵
    let anth = [];
    for (let r =1; r <= m; r++) {
        let row = inputLines[r].split(' ').map(Number);
        anth.push(row);
    }

    // 初始化结果矩阵ret,所有元素初始化为0
    let ret = Array.from({length: m}, () => Array(n).fill(0));

    // 遍历每个天线位置
    for (let r =0; r < m; r++) {
        for (let c =0; c < n; c++) {
            let count =0; // 当前天线可以接收到的信号数量

            // 向西方向查找(同一行,列索引减小)
            for (let yc = c -1; yc >=0; yc--) {
                let canReceive = true; // 标记是否可以接收来自该天线的信号
                let minHeight = Math.min(anth[r][c], anth[r][yc]);
                // 检查候选天线和当前天线之间的所有天线
                for (let kc = yc +1; kc < c; kc++) {
                    if (anth[r][kc] >= minHeight) {
                        canReceive = false; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if (canReceive) {
                    count +=1; // 可以接收来自该天线的信号
                }
            }

            // 向北方向查找(同一列,行索引减小)
            for (let yr = r -1; yr >=0; yr--) {
                let canReceive = true; // 标记是否可以接收来自该天线的信号
                let minHeight = Math.min(anth[r][c], anth[yr][c]);
                // 检查候选天线和当前天线之间的所有天线
                for (let kr = yr +1; kr < r; kr++) {
                    if (anth[kr][c] >= minHeight) {
                        canReceive = false; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if (canReceive) {
                    count +=1; // 可以接收来自该天线的信号
                }
            }

            // 将计数结果存入结果矩阵ret
            ret[r][c] = count;
        }
    }

    // 输出结果矩阵的行数和列数
    console.log(`${m} ${n}`);

    // 输出结果矩阵的元素值,按行输出
    for (let r =0; r < m; r++) {
        console.log(ret[r].join(' '));
    }
});

八、C算法源码

/* AntennaSignalReceiver.c
 * 定义天线信号接收者问题的解决方案
 */

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

int main() {
    int m, n;

    // 读取矩阵的行数m和列数n
    if (scanf("%d %d", &m, &n) != 2) {
        printf("输入格式错误,无法读取行数和列数。\n");
        return 1;
    }

    // 动态分配天线高度矩阵anth
    int **anth = (int **)malloc(m * sizeof(int *));
    for (int r = 0; r < m; r++) {
        anth[r] = (int *)malloc(n * sizeof(int));
        for (int c = 0; c < n; c++) {
            if (scanf("%d", &anth[r][c]) != 1) {
                printf("输入格式错误,无法读取天线高度。\n");
                // 释放已分配的内存
                for (int i = 0; i <= r; i++) {
                    free(anth[i]);
                }
                free(anth);
                return 1;
            }
        }
    }

    // 动态分配结果矩阵ret,初始化为0
    int **ret = (int **)malloc(m * sizeof(int *));
    for (int r = 0; r < m; r++) {
        ret[r] = (int *)calloc(n, sizeof(int));
    }

    // 遍历每个天线位置
    for (int r = 0; r < m; r++) {
        for (int c = 0; c < n; c++) {
            int count = 0; // 当前天线可以接收到的信号数量

            // 向西方向查找(同一行,列索引减小)
            for (int yc = c -1; yc >=0; yc--) {
                int can_receive = 1; // 标记是否可以接收来自该天线的信号
                int min_height = (anth[r][c] < anth[r][yc]) ? anth[r][c] : anth[r][yc];
                // 检查候选天线和当前天线之间的所有天线
                for (int kc = yc +1; kc < c; kc++) {
                    if (anth[r][kc] >= min_height) {
                        can_receive = 0; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if (can_receive) {
                    count++; // 可以接收来自该天线的信号
                }
            }

            // 向北方向查找(同一列,行索引减小)
            for (int yr = r -1; yr >=0; yr--) {
                int can_receive = 1; // 标记是否可以接收来自该天线的信号
                int min_height = (anth[r][c] < anth[yr][c]) ? anth[r][c] : anth[yr][c];
                // 检查候选天线和当前天线之间的所有天线
                for (int kr = yr +1; kr < r; kr++) {
                    if (anth[kr][c] >= min_height) {
                        can_receive = 0; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if (can_receive) {
                    count++; // 可以接收来自该天线的信号
                }
            }

            // 将计数结果存入结果矩阵ret
            ret[r][c] = count;
        }
    }

    // 输出结果矩阵的行数和列数
    printf("%d %d\n", m, n);

    // 输出结果矩阵的元素值,按行输出
    for (int r = 0; r < m; r++) {
        for (int c = 0; c < n; c++) {
            printf("%d", ret[r][c]);
            if (c != n -1) {
                printf(" ");
            }
        }
        printf("\n");
    }

    // 释放动态分配的内存
    for (int r = 0; r < m; r++) {
        free(anth[r]);
        free(ret[r]);
    }
    free(anth);
    free(ret);

    return 0;
}

九、C++算法源码

// AntennaSignalReceiver.cpp
// 定义天线信号接收者问题的解决方案

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    int m, n;

    // 读取矩阵的行数m和列数n
    cin >> m >> n;

    // 初始化天线高度矩阵anth
    vector<vector<int>> anth(m, vector<int>(n));
    for(int r =0; r < m; r++) {
        for(int c =0; c < n; c++) {
            cin >> anth[r][c];
        }
    }

    // 初始化结果矩阵ret,所有元素初始化为0
    vector<vector<int>> ret(m, vector<int>(n, 0));

    // 遍历每个天线位置
    for(int r =0; r < m; r++) {
        for(int c =0; c < n; c++) {
            int count =0; // 当前天线可以接收到的信号数量

            // 向西方向查找(同一行,列索引减小)
            for(int yc = c -1; yc >=0; yc--) {
                bool can_receive = true; // 标记是否可以接收来自该天线的信号
                int min_height = min(anth[r][c], anth[r][yc]);
                // 检查候选天线和当前天线之间的所有天线
                for(int kc = yc +1; kc < c; kc++) {
                    if(anth[r][kc] >= min_height) {
                        can_receive = false; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if(can_receive) {
                    count++; // 可以接收来自该天线的信号
                }
            }

            // 向北方向查找(同一列,行索引减小)
            for(int yr = r -1; yr >=0; yr--) {
                bool can_receive = true; // 标记是否可以接收来自该天线的信号
                int min_height = min(anth[r][c], anth[yr][c]);
                // 检查候选天线和当前天线之间的所有天线
                for(int kr = yr +1; kr < r; kr++) {
                    if(anth[kr][c] >= min_height) {
                        can_receive = false; // 存在高度不满足条件的天线
                        break;
                    }
                }
                if(can_receive) {
                    count++; // 可以接收来自该天线的信号
                }
            }

            // 将计数结果存入结果矩阵ret
            ret[r][c] = count;
        }
    }

    // 输出结果矩阵的行数和列数
    cout << m << " " << n << "\n";

    // 输出结果矩阵的元素值,按行输出
    for(int r =0; r < m; r++) {
        for(int c =0; c < n; c++) {
            cout << ret[r][c];
            if(c != n -1) {
                cout << " ";
            }
        }
        cout << "\n";
    }

    return 0;
}


🏆下一篇:华为OD机试真题 - 简易内存池(Python/JS/C/C++ 2024 E卷 200分)

🏆本文收录于,华为OD机试真题(Python/JS/C/C++)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2186372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;法律法规背景中华人民共和国保守秘密法中华人民共和国网络安全法中华人民共和国个人信息保护法遵守法律法规的重要性 &#x1f4af;ChatGPT的数据使用特点ChatGPT数据安全…

华为OD机试 - 分班问题(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

无人机电力巡检:点亮电力巡检新视野!

一、无人机电力巡查的优势 提高巡检效率&#xff1a;无人机可以搭载高清摄像头、红外热像仪等先进设备&#xff0c;实时拍摄和传输图像&#xff0c;帮助巡检人员快速发现潜在问题&#xff0c;如电线破损、绝缘子污损、设备过热等&#xff0c;从而大大缩短了巡检周期。 降低人…

Tiny Transformer:从零开始构建简化版Transformer模型

引言 自然语言处理&#xff08;NLP&#xff09;与计算机视觉&#xff08;CV&#xff09;有显著差异&#xff0c;各自任务的独特性决定了它们适用的模型架构。在CV中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;长期占据主导地位&#xff0c;而在NLP领域&#xff0c;循…

基于微信小程序的四六级词汇+ssm(lw+演示+源码+运行)

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;四六级词汇小程序被用户普遍使用&#xff0c;为方便用户能…

Python入门--判断语句

目录 1. 布尔类型和比较运算符 2. if语句的基本格式 3. if-else语句 4. if-elif-else语句 5. 判断语句的嵌套 6. 应用--猜数字游戏 进行逻辑判断&#xff0c;是生活中常见的行为。同样&#xff0c;在程序中&#xff0c;进行逻辑判断也是最为基础的功能。 1. 布尔类型和比…

OceanBase—02(入门篇——对于单副本单节点,由1个observer扩容为3个observer集群)——之前的记录,当初有的问题未解决,目前新版未尝试

OceanBase—02&#xff08;入门篇——对于单副本单节点&#xff0c;由1个observer扩容为3个observer集群&#xff09;——之前的记录&#xff0c;有的问题未解决&#xff0c;新版未尝试 1、前言—安装单副本单节点集群1.1 docker安装OB 2、查看现有集群情况2.1 进入容器&#x…

设置服务器走本地代理

勾选&#xff1a; 然后&#xff1a; git clone https://github.com/rofl0r/proxychains-ng.git./configure --prefix/home/wangguisen/usr --sysconfdir/home/wangguisen/etcmakemake install# 在最后配置成本地代理地址 vim /home/wangguisen/etc/proxychains.confsocks4 17…

Python编写的贪吃蛇小游戏

安装包 pip install pygame完整代码 import pygame import randompygame.init()# 定义颜色 white (255, 255, 255) black (0, 0, 0) red (213, 50, 80) green (0, 255, 0) blue (50, 153, 213)# 定义屏幕大小 dis_width 800 dis_height 600dis pygame.display.set_mo…

【数据结构】什么是平衡二叉搜索树(AVL Tree)?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;AVL树的概念 &#x1f4cc;AVL树的操作 &#x1f38f;AVL树的插入操作 ↩️右单旋 ↩️↪️右左双旋 ↪️↩️左右双旋 ↪️左单旋 &#x1f38f;AVL树的删…

CTF刷题buuctf

[WUSTCTF2020]颜值成绩查询 拿到相关题目&#xff0c;其实根据功能和参数分析。需要传入一个学号然后进行针对于对应的学号进行一个查询&#xff0c;很可能就会存在sql注入。 其实这道题最难的点&#xff0c;在于过滤了空格&#xff0c;因此我们使用 /**/来过滤空格的限制。…

智能化焊接数据管理系统:系统功能设计与应用场景,OEM定制

在快速发展的工业4.0时代&#xff0c;智能化技术正以前所未有的速度改变着各行各业&#xff0c;其中焊接行业也不例外。随着物联网、大数据、人工智能等技术的不断融合&#xff0c;智能化焊接数据管理系统应运而生&#xff0c;成为提高焊接效率、保障焊接质量、优化生产流程的重…

半监督学习与数据增强(论文复现)

半监督学习与数据增强&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 文章目录 半监督学习与数据增强&#xff08;论文复现&#xff09;概述算法原理核心逻辑效果演示使用方式 概述 本文复现论文提出的半监督学习方法&#xff0c;半监督学习&…

C题(二)字符串转数字 --- atoi

———————————————————**目录**—————————————————— 一、 atoi函数介绍 功能函数原型使用示例 二、题解之一 三、留言 问题引入&#x1f449; 输入样例&#x1f449; 5 01234 00123 00012 00001 00000 输出样例&#x1f449; 1234 123 …

‌文件名称与扩展名:批量重命名的技巧与指南

在日常的文件管理中&#xff0c;我们经常需要处理大量的文件&#xff0c;这些文件可能有着各种各样的名称和扩展名。为了更好地管理和识别这些文件&#xff0c;批量重命名成为了一项非常实用的技能。能够帮助我们快速整理文件&#xff0c;提高工作效率。本文将深入探讨文件名称…

vue2圆形标记(Marker)添加点击事件不弹出信息窗体(InfoWindow)的BUG解决

目录 一、问题详情 二、问题排查 三、解决方案 一、问题详情 地图上面的轨迹点希望能通过点击看到详细的经纬度信息&#xff0c;但是点击的时候就是显示不出来。 二、问题排查 代码都是参考高德的官方文档&#xff0c;初步看没有问题啊&#xff0c;但是点击事件就感觉失效…

10.3今日错题解析(软考)

目录 前言计算机网络——路由配置数据库系统——封锁协议 前言 这是用来记录我备考软考设计师的错题的&#xff0c;今天知识点为路由配置、封锁协议&#xff0c;大部分错题摘自希赛中的题目&#xff0c;但相关解析是原创&#xff0c;有自己的思考&#xff0c;为了复习&#xf…

Pix2Pix实现图像转换

tutorials/application/source_zh_cn/generative/pix2pix.ipynb MindSpore/docs - Gitee.com Pix2Pix概述 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c;该模型是由Ph…

Comparable接口和Comparator接口

前言 Java中基本数据类型可以直接比较大小&#xff0c;但引用类型呢&#xff1f;同时引用对象中可能存在多个可比较的字段&#xff0c;那么我们该怎么比较呢&#xff1f; Java中引用类型不能直接进行大小的比较&#xff0c;这种行为在编译器看来是危险的&#xff0c;所以会编译…

程序员在AI时代的生存指南:打造不可替代的核心竞争力

在这个AI大行其道的时代&#xff0c;似乎每天都有新的语言模型像变魔术一样涌现出来&#xff0c;比如ChatGPT、midjourney、claude等等。这些家伙不仅会聊天&#xff0c;还能帮忙写代码&#xff0c;让程序员们感受到了前所未有的“压力”。我身边的一些程序员朋友开始焦虑&…