牛客周赛 Round 117

牛客周赛round117 补题[e ] E题来源:牛客网。 阅读详情
A. 小红的图

题目描述
平面上有一个 2×2 的格子,小红初始在第 a 列,第 b 行,她想知道自己在格子的左上、左下、右上还是右下位置,请你帮帮她。

输入描述:
第一行输入两个整数 a,b(1≦a,b≦2)。
输出描述:
对于小红在左上、左下、右上、右下,分别输出 LU、LD、RU、RD。

解题思路:注意是先输入的列再输入的行

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);     
        int b = sc.nextInt();
        int a = sc.nextInt();
        if(a==1 && b==1){
            System.out.println("LU");
        }else if(a==1 && b==2){
            System.out.println("RU");
        }else if(a==2 && b==2){
            System.out.println("RD");
        }else{
            System.out.println("LD");
        }
    }
}
B. 小红的菊花

题目描述

小红拿到了一个由 n 个点组成的菊花树,现在她想知道菊花的中心点(即与除自身外所有节点均相连的点)的编号,请你帮帮她。

【名词解释】

菊花:一种特殊的树,满足存在 u 使得所有除 u 外点均与 u 相连。

输入描述:

第一行输入一个整数 n(3≦n≦100)。
之后的 n−1 行,每行输入两个整数 ui,vi(1≦ui,vi≦n,ui≠vi),代表 ui,vi​ 之间有一条边。

特殊的,保证所给出的图是一个菊花。

输出描述:
输出一个整数,代表中心点的编号。

解题思路:统计度数为n-1的点,用deg数组进行统计各个点的度数

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] deg = new int[n + 1];
        for (int i = 0; i < n - 1; i++) {
            int u = sc.nextInt();
            int v = sc.nextInt();
            deg[u]++;
            deg[v]++;
        }
        sc.close();
        for (int i = 1; i <= n; i++) {
            if (deg[i] == n - 1) {
                System.out.println(i);
            }
        }
    }
}
C. 小红的好矩形

题目描述
在平面直角坐标系中,小红定义一个矩形是好矩形,当且仅当其所有边均平行于坐标轴,且面积为 2。
现在小红要选出四个横坐标在 [0,n]内,纵坐标在 [0,m] 内的整点,使得这四个点能组成一个矩形,且矩形是好矩形。
小红想知道有多少种选法,请你帮帮她。

输入描述:
第一行输入两个整数 n,m(1≦n,m≦2×10^5)
输出描述:
输出一个整数,代表合法的方案数。

解题思路:

面积是2,因此只有1 * 2 或者 2 * 1两种情况

第一种情况的话,

[0, n] 选 长度 为1 的段,有n中选法

[0, m] 选长度为2的段,有m-1中选法

第二种情况则相反

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), m = sc.nextInt();
        int x0 = Math.max(0,m-1),y = n;
        int x1 = Math.max(0,n-1),y1 = m;
        long ans = 1L * x0 * y  + 1L * x1 * y1;
        System.out.println(ans);
    }
}
D. 小红嫁接

题目描述

小芳有一颗 n 个节点的树,但小红更喜欢链。为了把这棵树变成链,小红可以进行如下操作:

∙选择任意一条边,其连接两个点 u,v。现在将这条边断开,之后在点 u 所在连通块中任选一个节点,向点 v 连边。

小红想知道,要把这棵树变成链最少需要几次操作?

输入描述:

第一行输入一个整数 n(1≦n≦2×10^5)。
之后的 n−1 行,每行输入两个整数 ui,vi(1≦ui,vi≦n),代表有一条边连接 ui,vi。

输出描述:
输出一个整数,代表小红所需的最少次数。
示例1

输入
5
1 2
1 3
1 4
4 5
输出
1

解题思路:

统计每个点的度数,对于一条链来说,两端节点的度数都为1,中间各个部分的节点都为2

操作一次的话,就是将多余节点连接到树的叶子节点上【度数为1的节点】,因此总操作次数就是 每个节点所连接的多余度节点的和【Math.max(0, deg[i] -2 )】

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] deg = new int[n + 1];
        for (int i = 0; i < n - 1; i++) {
            int u = sc.nextInt();
            int v = sc.nextInt();
            deg[u]++;
            deg[v]++;
        }
        sc.close();
        long ans = 0L;
        for (int i = 1; i <= n; i++) {
            if (deg[i] > 2) ans += (deg[i] - 2);
        }
        System.out.println(ans);
    }
}
E. 小红玩马

题目描述

小红在一个 n×m 的棋盘中玩国际象棋。一开始,在 (x1,y1) 位置有一个马,小红想要使用恰好 k 步将其移动到 (x2,y2),请你帮小红找到一个可能的移动路径。(k 步之后马的位置在(x2,y2)即可。)

马能走到的位置如下图所示:

输入描述:

第一行输入三个整数 n,m,k(1≦n,m≦1000,1≦k≦2×10^5)第二行输入四个整数 x1,y1,x2,y2(1≦x1,x2≦n,1≦y1,y2≦m)。
输出描述:
如果不存在合法的方案,请输出 No;否则输出 Yes,并在之后的 k 行内,每行输出两个整数 xi​,yi​,代表第 i 步走到了 (xi,yi)。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入
3 3 3
1 1 1 2
输出
Yes
2 3
3 1
1 2

解题思路:

1. 步数必须满足k,提前到达后,也需要通过来回往返来消耗多余偶数步数

import java.util.*;

public class Main {
    private static final int[] DX = {1,1,2,2,-1,-1,-2,-2};
    private static final int[] DY = {2,-2,1,-1,2,-2,1,-1};

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int k = sc.nextInt();
        int x1 = sc.nextInt() - 1;
        int y1 = sc.nextInt() - 1;
        int x2 = sc.nextInt() - 1;
        int y2 = sc.nextInt() - 1;
        sc.close();
        int N = n * m;
        int s = x1 * m + y1;
        int t = x2 * m + y2;
        int[] dist = new int[N];
        Arrays.fill(dist, -1);
        int[] pre = new int[N];
        Arrays.fill(pre, -1);

        int[] q = new int[N];
        int head = 0, tail = 0;
        q[tail++] = s;
        dist[s] = 0;

        boolean flag = false;
        while (head < tail) {
            int u = q[head++];
            if (u == t) { flag = true; break; }
            int ux = u / m, uy = u % m;
            for (int d = 0; d < 8; d++) {
                int vx = ux + DX[d], vy = uy + DY[d];
                if (vx < 0 || vx >= n || vy < 0 || vy >= m) continue;
                int v = vx * m + vy;
                if (dist[v] == -1) {
                    dist[v] = dist[u] + 1;
                    pre[v] = u;
                    q[tail++] = v;
                }
            }
        }

        if (dist[t] == -1 || dist[t] > k || ((k - dist[t]) & 1) == 1) {
            System.out.println("No");
            return;
        }
        ArrayList<Integer> path = new ArrayList<>();
        int cur = t;
        while (cur != -1) {
            path.add(cur);
            cur = pre[cur];
        }
        Collections.reverse(path);
        int insertIdx = -1;
        for (int i = 0; i < path.size(); i++) {
            int id = path.get(i);
            int x = id / m, y = id % m;
            boolean hasNeigh = false;
            for (int d = 0; d < 8; d++) {
                int nx = x + DX[d], ny = y + DY[d];
                if (nx >= 0 && nx < n && ny >= 0 && ny < m) {
                    hasNeigh = true; break;
                }
            }
            if (hasNeigh) { insertIdx = i; break; }
        }
        if (insertIdx == -1) {
            if (k == 0 && dist[t] == 0) {
                System.out.println("Yes");
                return;
            } else {
                System.out.println("No");
                return;
            }
        }

        int extraPairs = (k - dist[t]) / 2; 
        ArrayList<int[]> moves = new ArrayList<>(k);
        int pathLen = path.size();
        int position = path.get(0);
        for (int idx = 0; idx < pathLen; idx++) {
            if (idx == insertIdx && extraPairs > 0) {
                int x = position / m, y = position % m;
                int neigh = -1;
                for (int d = 0; d < 8; d++) {
                    int nx = x + DX[d], ny = y + DY[d];
                    if (nx >= 0 && nx < n && ny >= 0 && ny < m) {
                        neigh = nx * m + ny;
                        break;
                    }
                }
                for (int tpair = 0; tpair < extraPairs; tpair++) {
                    moves.add(new int[]{neigh / m + 1, neigh % m + 1});
                    moves.add(new int[]{position / m + 1, position % m + 1});
                }
            }
            if (idx + 1 < pathLen) {
                int next = path.get(idx + 1);
                moves.add(new int[]{next / m + 1, next % m + 1});
                position = next;
            }
        }
        if (moves.size() != k) {
            System.out.println("No");
            return;
        }
        StringBuilder sb = new StringBuilder();
        sb.append("Yes\n");
        for (int[] p : moves) {
            sb.append(p[0]).append(' ').append(p[1]).append('\n');
        }
        System.out.print(sb.toString());
    }
}
F. 小红的⑨

题目描述

小红定义树上两个点的距离为这两点之间简单路径经过的边数。
小红拿到了一棵有 n 个节点的树,现在她想知道对于这棵树的每个节点,距离恰好为 9 的节点有多少个,请你帮帮她。

输入描述:
第一行输入一个整数 n(1≦n≦2×10^5)之后的 n−1 行,每行输入两个整数 u,v(1≦u,v≦n),代表点 u,v 之间有一条边。
输出描述:
输出 n 个整数,依次代表对于 1 到 n 号点,距离为 9 的节点有多少个。
示例1

输入
10
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
输出
1 0 0 0 0 0 0 0 0 1

import java.util.*;

public class Main {
    private static final int K = 9;
    
    public static void main(String[] args) throws Exception {
        Scanner fs = new Scanner(System.in);
        int n = fs.nextInt();
        ArrayList<Integer>[] g = new ArrayList[n + 1];
        for (int i = 1; i <= n; i++) g[i] = new ArrayList<>();
        for (int i = 0; i < n - 1; i++) {
            int u = fs.nextInt();
            int v = fs.nextInt();
            g[u].add(v);
            g[v].add(u);
        }
        int[][] down = new int[n + 1][K + 1];
        int[][] up = new int[n + 1][K + 1];
        int[] parent = new int[n + 1];
        Arrays.fill(parent, 0);
        ArrayList<Integer> order = new ArrayList<>(n);
        ArrayDeque<Integer> stack = new ArrayDeque<>();
        stack.push(1);
        parent[1] = 0;
        while (!stack.isEmpty()) {
            int u = stack.pop();
            order.add(u);
            for (int v : g[u]) {
                if (v == parent[u]) continue;
                parent[v] = u;
                stack.push(v);
            }
        }
        for (int idx = order.size() - 1; idx >= 0; --idx) {
            int u = order.get(idx);
            Arrays.fill(down[u], 0);
            down[u][0] = 1;
            for (int v : g[u]) {
                if (v == parent[u]) continue;
                for (int d = 1; d <= K; ++d) {
                    down[u][d] += down[v][d - 1];
                }
            }
        }
        long[] ans = new long[n + 1];
        for (int u : order) {
            int[] all = new int[K + 1];
            for (int d = 0; d <= K; d++) {
                all[d] = down[u][d] + up[u][d];
            }
            ans[u] = all[K];
            for (int v : g[u]) {
                if (v == parent[u]) continue;
                Arrays.fill(up[v], 0);
                if (K >= 1) up[v][1] = 1;
                for (int d = 2; d <= K; d++) {
                    int val = all[d - 1] - down[v][d - 2];
                    up[v][d] = val;
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= n; i++) {
            sb.append(ans[i]);
            if (i < n) sb.append(' ');
        }
        sb.append('\n');
        System.out.print(sb.toString());
    }
}

感谢大家的点赞和关注,你们的支持是我创作的动力! 

AD9371 官方例程构建及单音信号收发 项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。 阅读详情

相关推荐

GitHub 镜像站点

国内访问 GitHub 有时会遇到速度慢或不稳定的情况,这时 GitHub 镜像站点就能帮上忙。它们通过代理或缓存机制,让你更顺畅地浏览仓库、下载资源甚至克隆代码。希望这些信息能帮你更顺畅地访问 GitHub 资源。下面表格汇总了一些常见的镜像站及其主要用途。

BillKu的博客 6万+

牛客周赛 Round 117 ABCDE 题解

这篇代码合集包含了5个编程竞赛题解。A题通过简单判断输入方案输出对应结果;B题寻找菊花图的中心点;C题计算两种不同排列矩阵的总贡献值;D题通过调整树的连接方式将其转变为链状结构;E题使用BFS寻找马走日的最短路径,并处理多余步数的情况。每个题解都包含了详细的分析思路和对应的Java实现代码,展示了不同算法问题的解决方法和实现技巧。

多多的博客 588

MATLAB自动驾驶(1)——预构建场景库

MATLAB自动驾驶(1)——预构建场景库

Ucicorn Gundam的博客 3265

牛客周赛round117--------题解1

作为第一道的签到题,没有任何的难度,关键在于审题和对题目的理解,不要搞混,越是简单的题目越要在纸上写清楚思路再作答。踩的坑:对四个名词的概念混淆,导致未通过。考察知识点:判断,对题目的理解。可以优化的地方:无。

FMRbpm的博客 174

Android 13 录音APK在后台无数据的处理

未获取到录音数据

chenchen4310的博客 1182

Petalinux 2021.1 + Vivado 2021 实战:手把手教你为Zynq板卡移植Linux并搞定AXI DMA驱动

本文详细介绍了基于Petalinux 2021.1和Vivado 2021工具链,为Zynq开发板移植Linux系统并开发AXI DMA驱动的全流程。从环境配置、硬件设计到驱动适配与性能优化,提供了实战避坑技巧和版本特异性问题的解决方案,帮助开发者快速构建高速数据传输系统。

weixin_42641741的博客 386

牛客周赛round117 补题[F]

来源:牛客网。

蒟蒻 373

基于STM32F103的二维码识别项目——OV7670篇

此系列用于记录做过的项目,这篇文章介绍基于STM32F103的二维码识别项目之OV7670FIFO模块。

beyourself_he的博客 4287

牛客周赛Round117 E 小红玩马

摘要:本文探讨了国际象棋中马的恰好k步移动路径问题。给定n×m棋盘和起点、终点坐标,要求找到一条恰好k步从起点到终点的路径。解题思路采用分层BFS,记录到达每个位置的最小奇数步和偶数步。若存在满足(k-Z)%2==0的解,则通过来回跳消耗多余步数。算法使用三维数组存储距离和前驱信息,回溯路径后处理剩余步数。代码实现了这一过程,时间复杂度和空间复杂度均可行。

2401_87607041的博客 356

uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录),uni-app开发H5第三方微信授权登录的实现,uniapp如何实现微信授权登录,公众号H5页面接入微信登录流程,uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级

✅ 精选推荐文章 1万+

从零到一,打造你的无人机侦察兵!树莓派+Python+MQTT,实时目标检测全攻略

物联网、人工智能与计算机视觉三大前沿技术的深度融合。

u013558123的博客 1472

牛客周赛Round117--------题解2

这个题目是要求我们从n个数中找到一个中心点,中心点是与另外n-1个点都有联系的点,而有趣的是,输入语句第一行是n,也就是元素的个数,后面会跟和n-1行,每一行代表两个数之间建立的联系,看似非常复杂的题目就在这一刻开始变得异常简单,本以为菊花的形状是这样:但其实却是这样:这样一看,思路就跃然纸上了,虽然还是要照例输入这n-1行语句,但是实际判断中心点,只需要判断前两行就可以了,因为这n-1行每一行都会出现中心点和另一个一般点,所以只要在前两行里面找到重复出现的那个点就好了。

FMRbpm的博客 312

LVGL嵌入式GUI工程化架构与多窗口实践

嵌入式GUI开发中,LVGL作为轻量级图形库,其核心价值在于高效渲染与事件驱动机制。理解LVGL的对象树模型、资源管理机制(如RAW图像、静态字体)和屏幕生命周期,是构建稳定界面的基础。结合FreeRTOS等实时操作系统,可实现低功耗、高响应的交互体验。典型应用场景包括智能电表、HMI人机界面、工业控制面板等对内存敏感、需长期运行的设备。本文以微信式多窗口架构为范例,深入解析LVGL工程化落地的关键路径:分层目录结构、窗口模块封装、状态机式登录逻辑、TabView多页导航及图表/仪表盘动态可视化,覆盖从资源

weixin_36001279的博客 87

11.28牛客周赛round117菊花找中点问题

本题是要找菊花的中点,但本质上是找n-1组数据中相同的数,即为菊花的中点,我没有想到的是这道题可以简化成只找前两组数据中相同的数据即可。另外一个我没有想到的点是,可以用结构体数组来做,因为要比较第一组数据的其中每一个数据,是否与第二组数据相等,故用结构体数组更为方便。第三个我没想到的点就是,这里是我的基础知识不太扎实,可以直接用if ,else if语句完成,并且if,else if后面都可以输入条件。

2501_94031526的博客 149

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【JZ_abs75】11.9-11.15部分比赛

部分比赛

2301_79151952的博客 299

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【OJ比赛日历】快周末了,不来一场比赛吗? #08.19-08.25 #10场

实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注!以下信息仅供参考,以比赛官网为准。

CompHub的博客 315

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 215

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 326

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 147

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 113

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 190

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 352

Decorator

TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"

wlwork66的博客 102

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 609

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 392

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 369
上一篇: 力扣第 474 场周赛
一只鱼^_
博客等级 码龄3年 1073粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值