48天笔试训练错题——day47

news2024/9/24 3:25:59

目录

选择题

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

编程题

1. 合唱团

2. 马戏团


选择题

1.

子网掩码是 255.255.255.0,前三个字节都是 1,则表示有 24 位网络号和子网号。又是 B 类 IP 地址,只有 16 位网络号,所有第三个字节是子网,所以子网号是 160。

A 类 IP 地址:0.0.0.0 ~ 127.255.255.255          主机号有 24 位

B 类 IP 地址:128.0.0.0 ~ 191.255.255.255      主机号有 16 位

C 类 IP 地址:192.0.0.0 ~ 223.255.255.255      主机号有 8 位

2.

通过 IP 地址找到 MAC 地址的协议是 ARP 协议。

通过 MAC 地址找到 IP 地址的协议是 RARP 协议。

ICMP 协议是网络状况探测协议(ping)。

IP 协议负责路由选择,地址管理,数据包过大时分片与组合。

3.

cookie 是浏览器存储数据的机制,session 是服务器存储数据的机制。

cookie 和 session 存储的都是键值对,通过 sessionId 能够找到 session。

cookie 中存有 sessionId,sessionId 是连接 cookie 和 session 的桥梁。

cookie 和 session 经常一起使用,但也不是必须一起使用的,session 和 cookie 可以单独使用。

4.

等待 2MSL 时间是因为,ACK 在网络传输过程中可能会丢包,而如果被动关闭连接方一直没接收到 ACK,就会触发超时重传,此时会重传 FIN 给主动方,一来一回花费的时间就是 2MSL,保证此次通信的所有数据都消失在网络中,避免重传的数据对新连接造成影响。

5.

本题的释放连接指的是发送 FIN 请求。

FIN 表示自己不再发送数据,不表示自己不能接收数据,对方发送数据过来,还是能接收的。

6.

TCP 协议是有连接,可靠,全双工,面向字节流的。

TCP 建立连接需要三次握手,关闭连接需要四次挥手。

TCP 使用滑动窗口进行流量控制。

滑动窗口基于窗口大小字段实现,是接收方用于告诉发送方最多继续发送多少数据,避免发送过多缓冲区溢出。

TIME_WAIT 是主动关闭方会进入的状态。

7.

tcpdump 用于网卡抓包, top 用于查看 cpu 资源使用率。

netstat 用于查看网络通信连接状态,ifconfig 用于查看网卡信息。

8.

192.168.48.10:11000000.10101000.00110000.00001010    C 类 IP,24 网络号,多了 1 位

子网掩码:11111111.11111111.11111111.10000000  有 25 位网络号 + 子网号 

则说明子网号就是黄色部分,也就是 192.168.48.0。

192.168.48.0 有 7 位主机号, 2 ^ 7 = 128 个主机,范围是 192.168.48.0 ~ 192.168.48.127

除去网络号(全 0)和广播号(全 1),有效的范围就是 192.168.48.1 ~ 192.168.48.126

9.

255.255.255.252:11111111.11111111.11111111.11111100

有 2 位主机号,有 32 - 2 = 30 位网络号,172.16.100.00000101

网络地址就是 IP 地址前 30 位,172.16.100.4,主机号 IP 地址最后两位,也就是 1

10.

NAT 是网络地址转换技术,用于组建私网,给主机分配私网地址,对外通信时,转换为对外的公网地址进行通信,用于节省公网地址的使用。

虚拟机中的地址都是 DHCP 动态分配的,不需要手动设置。

NAT 只是地址转换技术,将数据流经网关的源端地址转换为对外地址,跟地址怎么分配没有关系。

NAT 实现方式:

① 静态:一个私网 IP 地址对应一个公网 IP 地址,一对一固定不变   

② 动态:转换地址不确定,在多个地址中动态转换

③ 端口多路复用:也叫 NAPT,私网内的大量主机可以使用同一个对外地址的不同端口进行对外通信。

编程题

1. 合唱团

思路:

代码实现:

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int[] arr = new int[n];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = in.nextInt();
            }
            int k = in.nextInt();
            int d = in.nextInt();
            print(arr, k, d, n);
        }
    }


    public static void print(int[] arr, int k, int d, int n) {
        // 用动态规划来做
        // dpMax[i][j] 就是取 j 个学生,并且最后一个学生是 arr[i - 1] 的乘积最大值
        // dpMin[i][j] 就是取 j 个学生,并且最后一个学生是 arr[i - 1] 的乘积最小值
        long[][] maxValue = new long[n + 1][k + 1];
        long[][] minValue = new long[n + 1][k + 1];
        // 初始化,如果 j == 1,则 dp[i][1] = 1
        for (int i = 1; i <= n; i++) {
            maxValue[i][1] = arr[i - 1];
            minValue[i][1] = arr[i - 1];
        }
        // 用来记录最终结果
        long ans = 0;

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= k; j++) {
                // i - d <= z <= i - 1
                for (int z = (i - d > 0 ? i - d : 0); z <= i - 1; z++) {
                    // 最大值可能是 最大正数*正数  最小负数*负数,自己本身
                    maxValue[i][j] = Math.max(maxValue[z][j - 1] * arr[i - 1], maxValue[i][j]);
                    maxValue[i][j] = Math.max(maxValue[i][j], minValue[z][j - 1] * arr[i - 1]);
                    // 最小值可能是 最大正数*负数 最小正数*正数,自己本身
                    minValue[i][j] = Math.min(minValue[z][j - 1] * arr[i - 1], minValue[i][j]);
                    minValue[i][j] = Math.min(minValue[i][j], maxValue[z][j - 1] * arr[i - 1]);
                }
                if (j == k) {
                    ans = Math.max(maxValue[i][j], ans);
                }
            }
        }

        System.out.println(ans);
    }
}

2. 马戏团

代码实现:

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
// 可以定义一个对象来存放员工的身高体重信息
class Person {
    public int num;
    public int height;
    public int weight;

    public Person(int num, int weight, int height) {
        this.num = num;
        this.height = height;
        this.weight = weight;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            List<Person> list = new ArrayList<>();
            // dp[i] 表示以数组 i 下标结尾的最长身高升序子序列长度
            int[] dp = new int[n];
            for (int i = 0; i < n; i++) {
                int num = in.nextInt();
                int weight = in.nextInt();
                int height = in.nextInt();
                Person p = new Person(num, weight, height);
                list.add(p);
                // 顺便初始化 dp[i]
                dp[i] = 1;
            }
            // 排序 list 数组
            Collections.sort(list, new Comparator<Person>() {
                @Override
                public int compare(Person p1, Person p2) {
                    if (p1.weight == p2.weight) {
                        // 体重相同,按身高逆序排序
                        return p2.height - p1.height;
                    } else {
                        // 体重不同,按体重升序排序
                        return p1.weight - p2.weight;
                    }
                }
            });


            for (int i = 0; i < list.size(); i++) {
                Person pi = list.get(i);
                for (int j = i - 1; j >= 0; j--) {
                    Person pj = list.get(j);
                    if (pj.height <= pi.height) {
                        dp[i] = Math.max(dp[i], dp[j] + 1);
                    }
                }
            }

            // 遍历 dp 数组,求出最大值后输出
            int max = 1;
            for (int i = 0; i < dp.length; i++) {
                if (dp[i] > max) {
                    max = dp[i];
                }
            }
            System.out.println(max);
        }
    }
}

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

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

相关文章

聊聊JS中的WebSocket

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注。个人知乎 在JavaScript中&#xff0c;使用WebSocket非常简单直观。通过几行代码&#xff0c;你就可以轻松创建一个WebSocket连接&#xff0c;并监听来自服务器的消息。无论是开发实时聊天应用、在线游戏、实时数据分…

高效录制新选择:2024年Windows录屏软件

录屏能帮助我们捕捉屏幕上的精彩瞬间&#xff0c;作为老师可以用来录制课程&#xff0c;作为会议记录员可以用来录制远程会议。那么有什么软件是适合windows录屏的呢&#xff1f;这次我们一起来探讨一下吧。 1.福昕录屏大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款软…

【数据结构】 顺序表的应用 - 通讯录的实现

0. 前言 上一期博客中&#xff0c;我们已经学习了顺序表是什么&#xff0c;以及顺序表相关接口的实现&#xff0c;了解了如何实现顺序表的插入和删除等功能&#xff0c;那么在这期博客&#xff0c;我们可以基于顺序表来实现一个通讯录&#xff0c;在通讯录当中能实现联系人的增…

【代码随想录训练营第42期 Day27打卡 贪心Part1 - LeetCode 455.分发饼干 376. 摆动序列 53. 最大子序和

目录 一、贪心 二、题目与题解 题目一&#xff1a;455.分发饼干 题目链接 题解&#xff1a;排序双指针贪心 题目二&#xff1a;376. 摆动序列 题目链接 题解&#xff1a;贪心 题目三&#xff1a;53. 最大子序和 题目链接 题解1&#xff1a;暴力&#xff08;失败&…

解决生产环境服务启动失败:一次远程Bug排查与修复历程

一、问题现象 同事没事一直给服务器断电&#xff08;直接拔插头那种&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 二、初步排查 首先&#xff0c;我登录到生产服务器&#xff0c;查看服务启动日志。在日志中&#xff0c;我发现了一些异常信息&#xff0c;…

全网独家梳理:数字病理图像的常用存储格式以及格式转换的方法|24-08-17

小罗碎碎念 这一期推文&#xff0c;跟你们分享一些比较底层&#xff0c;并且顶刊中不会涉及但是又至关重要的内容。 我们在做任何一个病理AI的项目前&#xff0c;有两样东西是一定会拿到手的——切片&对应的临床基线表。&#xff08;如果做多组学/多模态的项目&#xff0c;…

宠物空气净化器推荐购买吗?真的能除毛去味吗?

自从做了猫咖店老板&#xff0c;我这生活真的是美滋滋&#xff0c;每天都可以摸到不同品种的可爱的小猫咪&#xff0c;在赚钱养家的同时还能肆意和猫咪贴贴&#xff0c;连朋友都说想和我干一样的工作了。每天接待的顾客也不少&#xff0c;店里面的空气质量也还不错&#xff0c;…

模块一(任务2):SDH系统原理解读

一、PDH与SDH标准速率介绍 OTN网络技术是基于SDH系统和WDM系统设计的&#xff0c;所以学习OTN系统原理必须要掌握SDH和WDM量大系统原理 1、PDH与SDH概念及特点 二、SDH的帧结构 目前通信常见的数据结构有两种&#xff1a; 报文&#xff1a;基于以太网通信的数据结构 帧&am…

真诚巨作:全文一万字教你快速熟悉项目|文心快码帮你快速熟悉~

写在前面 : 上了好多年的学&#xff0c;终于毕业进入职场啦&#xff5e;在公司也有一段时间了&#xff0c;慢慢地也变成了纯正的社畜了。近来开始熟悉部门的项目代码&#xff0c;说实话公司的代码真跟以前接触的不一样&#xff0c;内部各种自建框架&#xff0c;让人看得眼花缭乱…

ARCGIS PRO 要素标注背景色透明度的设置

使用ArcGIS Pro 设置标注背景色的透明度 一、点击标注属性 二、点击符号、注释 三、下拉框选择背景 四、背景符号 五、点击颜色 六、编辑颜色 七、应用

Java语言程序设计基础篇_编程练习题**16.26(模拟:升旗并播放国歌)

目录 题目&#xff1a;**16.26&#xff08;模拟&#xff1a;升旗并播放国歌&#xff09; 习题思路&#xff1a; 代码示例 结果展示 音频来源 题目&#xff1a;**16.26&#xff08;模拟&#xff1a;升旗并播放国歌&#xff09; 创建一个显示升国旗的程序&#xff0c;如图15-14…

还在使用百度翻译?这4款翻译工具也能帮你打破语言壁垒!

是谁像我一样&#xff0c;一提到翻译工具第一想到的就是百度翻译。它可以是用了好久的翻译工具&#xff0c;可是随着学习的深入&#xff0c; 我还是发觉了一些其他的实用翻译工具。比如下面这四款&#xff1a; 1、365翻译工具 直达链接&#xff1a;https://fanyi.pdf365.cn/ …

NLP之transformer:transformer-explainer的简介、安装和使用方法、案例应用之详细攻略

NLP之transformer&#xff1a;transformer-explainer的简介、安装和使用方法、案例应用之详细攻略 目录 相关论文 《Transformer Explainer: Interactive Learning of Text-Generative Models》翻译与解读 transformer-explainer的简介 transformer-explainer的安装和使用方…

尚硅谷MYSQL(12-13章)

第十二章数据类型 比如说tinyint&#xff08;4&#xff09;这个四表示的是那个取值范围的位数 他只是一个显示 比如说int后面应该是int&#xff08;11&#xff09;这是有符号的 无符号int是int&#xff08;10&#xff09; 如果写成int&#xff08;3&#xff09;但是存的数据是…

论文写作新神器!10款可以写论文的人工智能软件

在当今快速发展的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到各个领域&#xff0c;包括学术研究和论文写作。为了帮助学者和学生提高写作效率和质量&#xff0c;市场上涌现了许多优秀的AI写作工具。本文将详细介绍10款可以写论文的人工智能软件&…

STM32F103C8T6单片机原理图设计(PCB板)

先了解了以下stm32f103c8t6的引脚使用&#xff1a; 对比过一些原理图&#xff0c;我发现除了特定协议的引脚功能&#xff0c;只要功能正确&#xff0c;可以自己选择连接对应的引脚。可以根据使用的LED/BEEP/DHT11/BH1750/ESP8266等模块的功能对应相应的引脚&#xff1a; WIFI(…

[开源] 安卓系统发送modbus协议到硬件设备下位机

最近是在研究安卓板子上的modbus通信&#xff0c;于是写了这个maven依赖。 项目中主要用到的功能是读写寄存器&#xff0c;所以依赖中重点测试了读写多个寄存器的协议。 另外你可以自定义协议pdu交给程序进行封装及发送。 如果使用中发现了什么问题&#xff0c;可以到仓库添…

DHU OJ 循环结构 整除的尾数

思路及代码 //input T int >0 //input a,b int 0< <10000 10< <100 #include<iostream> #include<iomanip> using namespace std; int main(){int T;cin >> T;while (--T > 0){int a, b;cin >> a >> b; //solution // (a*100…

Tomcat初篇

目录 Tomcat主要特点Tomcat的核心组件Tomcat使用安装Tomcat配置Tomcat启动和停止Tomcat Tomcat工作原理目录结构配置文件性能优化策略 Tomcat Apache Tomcat是一个开源的Servlet容器和Web服务器&#xff0c;广泛用于运行基于Java的Web应用程序。它实现了Java Servlet和JavaSer…

【Web开发手礼】探索Web开发的秘密(十八)-Vue2(4)部门管理页面、路由、打包部署

主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 文章目录 前言 部门管理页面 Vue路由 打包部署 打包 部署 总结 前言 主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 部门管理页面 <template><div>&…