当前位置: 首页 > news >正文

LeetCode面试热题150中6-11题学习笔记(用Java语言描述)

Day 02

6、轮转数组

需求:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

方法一

核心思想

使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,遍历原数组,将原数组下标为 i 的元素放至新数组下标为 (i+k)modn 的位置,最后将新数组拷贝至原数组即可。

代码表示
public class Q6_1 {public void rotate(int[] nums, int k) {int n = nums.length;int[] newArr = new int[n];  //创建新数组,长度等于原数组的长度k = k % n;	//处理K大于数组长度的情况for (int i = 0; i < n; ++i) {   //循环元素旋转newArr[(i + k) % n] = nums[i];}System.arraycopy(newArr, 0, nums, 0, n);    //复制回原数组newArr中}
}

代码详解

  • 第6-8行循环:

    • i:这是循环变量,代表原数组 nums 当前元素的索引。在循环里,i 会从 0 递增到 n - 1,从而遍历原数组的每一个元素。

    • k:它表示要将数组元素向右旋转的位数。比如,若 k = 3,就意味着每个元素要向右移动 3 个位置。

    • n:代表数组 nums 的长度。

在数组元素向右旋转的过程中,可能会出现元素移动到数组末尾后超出数组范围的情况。

(i + k) % n 这个表达式可以确保新的索引处于 0n - 1 的范围内,也就是在数组的有效索引区间内。

示例:

原数组长度为5,我们要将原数组中索引为2的元素往右边移动7位的时候等于是:(2+7)%5=4 = 7%5 =2.就是将原数组往右边移动2.

  • 第10行代码:

使用System.arraycopy方法将新数组newArr中的元素复制回原数组nums

arraycopy方法的参数依次为:源数组(newArr)、源数组的起始位置(0)、目标数组(nums)、目标数组的起始位置(0)以及要复制的元素数量(n)。

复杂度分析

时间复杂度: O ( n ) O(n) O(n),其中n是数组的长度。

空间复杂度: O ( n ) O(n) O(n).


7、买卖股票的最佳时机

需求:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

题目解读:我们需要找出给定数组中两个数字之间的最大差值(即,最大利润)。此外,第二个数字(卖出价格)必须大于第一个数字(买入价格)。

形式上,对于每组 i 和 j(其中 j>i)我们需要找出 max(prices[j]−prices[i])。

方法一

暴力法

代码表示
public class Q7_1 {public int maxProfit(int[] prices) {int maxProfit = 0;  //初始化最大利润为0for (int i = 0; i < prices.length - 1; i++) {   //外层循环确认买入的时机for (int j = i + 1; j < prices.length; j++) {   //内存循环确认卖出的时机从i+1开始int profit = prices[j] - prices[i]; //当前卖出的利润if (profit > maxProfit) {   //如果当前利润大于最大例如,则更新maxprofitmaxProfit = profit;}}}return maxProfit;}
}
复杂度分析

时间复杂度: O ( n 2 ) O(n^2) O(n2),其中n是数组的长度。采用的双重循环进行遍历。

空间复杂度: O ( 1 ) O(1) O(1),只使用了常数级的额外空间。

缺点

时间复杂度较高,处理大规模数据导致性能问题。想办法将时间复杂度降到 O ( n ) O(n) O(n).

方法二

遍历一次数组

代码表示
public class Q7_2 {public int maxProfit(int[] prices) {int minPrice = Integer.MAX_VALUE;//初始化最低股票价格,初始化为的整形最大值,//这样在首次比较时,任何实际价格都会小于初始化的值从而被更新。int maxProfit = 0;for (int price : prices) {  //循环遍历//增强型for循环遍历prices数组,每次迭代price代表当前遍历到的价格if (price < minPrice) {minPrice = price;   //更新最低价格} else if (price - minPrice > maxProfit) {maxProfit = price - minPrice;   //计算更新当前的利润}}return maxProfit;}
}
复杂度分析

时间复杂度: O ( n ) O(n) O(n),只需要遍历一次数组。

空间复杂度: O ( 1 ) O(1) O(1),只使用了常数个变量。


8、买卖股票的最佳时机Ⅱ

需求:给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润

思路

在给定的股票价格数组中,每天都能决定是否买卖股票,且任何时刻最多持有一股股票,还允许在同一天买卖。那么,只要后一天的股票价格比前一天高,就可以通过在前一天买入、后一天卖出的操作来获取利润。

我们要做的就是找出所有这样的价格上升区间,并将这些区间的利润累加起来,就能得到最大利润。

代码表示
public class Q8_1 {public int maxProfit(int[] prices) {int profit = 0;//从第一天开始循环遍历for (int i = 1; i < prices.length; i++) {if (prices[i] > prices[i - 1]) {    //如果后一天的价格比前一天高profit += prices[i] - prices[i - 1];    //累加利润}}return profit;}
}
复杂度分析

时间复杂度: O ( n ) O(n) O(n), n 是数组 prices 的长度。只进行一次遍历。

空间复杂度: O ( 1 ) O(1) O(1).


9、跳跃游戏

需求:给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false

方法一

思路

使用贪心算法来解决。贪心算法的核心思想是在每一步都尽可能地选择能跳到最远位置的方案。

代码表示
public class Q9_1 {public boolean CanJump(int[] nums) {int maxReach = 0;//记录从数组起始位置开始,当前能够到达的最远下标位置。//使用 for 循环遍历数组 nums,从数组的第一个下标(索引为 0)开始,直到数组的最后一个下标。for (int i = 0; i < nums.length; i++) {if (i > maxReach) {return false;}maxReach = Math.max(maxReach, i + nums[i]);/*i + nums[i] 表示从当前位置 i 出发,根据该位置上的数字 nums[i] 所能跳跃到的最远下标位置。使用 Math.max 函数比较 maxReach 和 i + nums[i] 的大小,将较大值赋给 maxReach,以此更新当前能够到达的最远下标位置。*/if (maxReach >= nums.length - 1) {return true;}/*检查当前更新后的 maxReach 是否大于或等于数组的最后一个下标 nums.length - 1。如果满足条件,说明已经能够到达或超过数组的最后一个下标,直接返回 true。*/}return false;}
}
复杂度分析

时间复杂度: O ( n ) O(n) O(n), n 是数组的长度。只进行一次遍历。

空间复杂度: O ( 1 ) O(1) O(1).


10、跳跃游戏Ⅱ

需求:给定一个长度为 n0 索引整数数组 nums。初始位置为 nums[0]

每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

  • 0 <= j <= nums[i]
  • i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]

思路

采用贪心算法,每次都尽可能的跳的远,以此来减少跳跃的总次数。

代码表示
public class Q10_1 {public int jump(int[] nums) {int n = nums.length;int jumps = 0;//记录跳跃的总次数int currentEnd = 0;//表示当前这一次跳跃所能到达的最远位置的边界,初始值为 0,意味着刚开始还未进行跳跃。int farthest = 0;//记录从当前位置以及之前的位置出发,所能到达的最远位置,初始值为 0。for (int i = 0; i < n - 1; i++) {farthest = Math.max(farthest, i + nums[i]);/*i + nums[i] 表示从当前位置 i 出发,根据该位置上的数字 nums[i] 所能跳跃到的最远位置。使用 Math.max 函数比较 farthest 和 i + nums[i] 的大小,将较大值赋给 farthest,以此更新从当前位置以及之前的位置出发所能到达的最远位置。*/if (i == currentEnd) {  //已经到达了当前这一次跳跃所能到达的最远位置的边界。jumps++;    //进行一次新的跳跃,所以将跳跃次数 jumps 加 1。currentEnd = farthest;  //表示新的一次跳跃所能到达的最远位置的边界。}}return jumps;}
}
复杂度分析

时间复杂度: O ( n ) O(n) O(n), n 是数组的长度。只进行一次遍历。

空间复杂度: O ( 1 ) O(1) O(1).


11、H指数

需求:给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数

根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数 是其中最大的那个。

方法一

排序法

整体思路

先将引用次数数组按降序排列,然后从大到小遍历排序后的数组,找出满足条件的最大 h 值。

代码表示
import java.util.Arrays;class Q11_1 {public int hIndex(int[] citations) {Arrays.sort(citations);/*运用 Arrays.sort() 方法对 citations 数组进行升序排序。排序后,数组中的元素按引用次数从小到大排列。*/int h = 0, i = citations.length - 1;while (i >= 0 && citations[i] > h) {h++;i--;}/*i >= 0 确保索引 i 在数组的有效范围内。citations[i] > h 表示当前论文的引用次数大于当前的 h 指数,意味着可以继续增加 h 指数。*/return h;}
}
复杂度分析

时间复杂度:O(nlogn),其中 n 为数组 citations 的长度。即为排序的时间复杂度。

空间复杂度:O(logn),其中 n 为数组 citations 的长度。即为排序的空间复杂度。

相关文章:

LeetCode面试热题150中6-11题学习笔记(用Java语言描述)

Day 02 6、轮转数组 需求&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 方法一 核心思想 使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度&#xff0c;遍历原数组&#xff0c;将原数组下标…...

驱动开发硬核特训 · Day 10 (理论上篇):设备模型 ≈ 运行时的适配器机制

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 敬请关注&#xff0c;记得标为原始粉丝。 在 Linux 驱动开发中&#xff0c;设备模型&#xff08;Device Model&#xff09;是理解驱动架构的核心。而从软件工程…...

4.13日总结

javafx中实现发送qq邮箱验证码: 手动导入jar包方法&#xff1a; 第一步&#xff1a;开启QQ邮箱的 POP3/IMAP 或者 SMTP/IMAP 服务 打开qq邮箱&#xff08;电脑端&#xff09;&#xff0c;找到设置里的账号与安全的安全设置&#xff0c;往下滑就可以找到 POP3/IMAP 或者 SMTP…...

python 微博爬虫 01

起因&#xff0c; 目的: ✅下载单个视频&#xff0c;完成。✅ 获取某用户的视频列表&#xff0c;完成。剩下的就是&#xff0c; 根据视频列表&#xff0c;逐个下载视频&#xff0c;我没做&#xff0c;没意思。获取视频的评论&#xff0c;以后再说。 关键点记录: 1. 对一个视…...

CST1017.基于Spring Boot+Vue共享单车管理系统

计算机/JAVA毕业设计 【CST1017.基于Spring BootVue共享单车管理系统】 【项目介绍】 共享单车管理系统&#xff0c;基于 Spring Boot Vue 实现&#xff0c;功能丰富、界面精美 【业务模块】 系统共有四类用户&#xff0c;分别是&#xff1a;监管用户、运营用户、调度用户、普…...

小刚说C语言刷题——第23讲 字符数组

前面&#xff0c;我们学习了一维数组和二维数组的概念。今天我们学习一种特殊的数组&#xff0c;字符数组。 1.字符数组的概念 字符数组就是指元素类型为字符的数组。字符数组是用来存放字符序列或者字符串的。 2.字符数组的定义及语法 char ch[5]; 3.字符数组的初始化及赋…...

c++11--std::forwaord--完美转发

std::forword的作用 完美转发的核心目的是保持参数的原始类型&#xff08;包括const/volatile限定符和左值/右值性质&#xff09;不变地传递给其他函数。 为什么需要完美转发 在没有完美转发之前&#xff0c;我们面临以下问题&#xff1a; 模板参数传递中的值类别丢失 当参数…...

机器学习的一百个概念(12)学习率

前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索: 知识库创建人机器学习@Shockang机器学习数学基础@Shocka…...

java异常 与 泛型<T>

文章目录 异常认识异常什么是异常&#xff1f;Java的异常体系异常的基本处理异常的作用&#xff1f; 自定义异常编译时异常自定义运行时异常 异常的处理方案 泛型认识泛型泛型类泛型接口泛型方法、通配符、上下限泛型支持的类型包装类包装类具备的其他功能总结 异常 认识异常 …...

齐次坐标系统:什么是齐次坐标?为什么要引入齐次坐标?

齐次坐标系统&#xff1a;计算机图形学的基础 在计算机图形学、计算机视觉、相机标定、三维建模等领域&#xff0c;齐次坐标是一个非常重要的数学工具。本文将介绍&#xff1a;齐次坐标的基本概念、数学原理、我们为什么要引入齐次坐标、及其在实际应用中的价值。 文章目录 齐…...

基于XGBoost的异烟酸生产收率预测:冠军解决方案解析

1. 引言 在化工生产领域,准确预测产品收率对优化工艺流程、降低生产成本具有重要意义。本文以异烟酸生产为研究对象,通过机器学习方法构建预测模型,在包含10个生产步骤、42个工艺参数的数据集上实现高精度收率预测。该方案在工业竞赛中斩获冠军,本文将深度解析其技术实现细…...

vue3动态路由

要想实现vitevue-router实现动态路由我们需要用到 1. addRoute() 官方文档中addRoute的使用 当我们添加一个主路由的时候 router.addRoute({ path: /permission, name: permission, component: () > import(xxxxx)}) 添加子路由也就是嵌套路由 router.addRoute(主路由的…...

Tkinter进度条与状态栏

在图形用户界面(GUI)应用中,进度条和状态栏是非常常见的控件,它们可以有效地向用户显示操作进度、状态信息或者任务完成情况。Tkinter提供了内置的控件和方法来实现进度条和状态栏的功能。在这一章中,我们将学习如何在Tkinter应用中使用进度条和状态栏来提升用户体验。 1…...

NModbus 库在 C# 中的使用

以下是关于 NModbus 库在 C# 中的使用方法 的详细指南,涵盖从安装到实际通信的完整流程: 1. 安装 NModbus 库 通过 NuGet 包管理器安装: Install-Package NModbus 或使用 .NET CLI: dotnet add package NModbus 2. 基础使用示例 2.1 创建 Modbus TCP 主站(Master) …...

大模型到底是怎么产生的?一文了解大模型诞生全过程

前言 大模型到底是怎么产生的呢? 本文将从最基础的概念开始,逐步深入,用通俗易懂的语言为大家揭开大模型的神秘面纱。 大家好,我是大 F,深耕AI算法十余年,互联网大厂核心技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 【专栏介绍】: 欢迎关注《…...

算法差分详解 + 总结

文章目录 差分一维差分题解代码 二维差分 差分 区间修改时使用差分 1. 先预处理一个差分数组&#xff0c;cre[i] a[i] - a[i-1]&#xff0c;对差分数组求前缀和可以还原为原数组 2. 如果要让区间内的数d&#xff0c;比如[l,r]内d&#xff0c;那么r1区间-d可以达到这样的效果&…...

全星APQP软件:为用户提供高效、合规、便捷的研发管理体验

全星APQP软件&#xff1a;为用户提供高效、合规、便捷的研发管理体验 为什么选择全星APQP软件系统&#xff1f; 在汽车及高端制造行业&#xff0c;研发项目管理涉及APQP&#xff08;先期产品质量策划&#xff09;、FMEA&#xff08;失效模式与影响分析&#xff09;、CP&#x…...

数据结构——哈希详解

数据结构——哈希详解 目录 一、哈希的定义 二、六种哈希函数的构造方法 2.1 除留取余法 2.2 平方取中法 2.3 随机数法 2.4 折叠法 2.5 数字分析法 2.6 直接定值法 三、四种解决哈希冲突的方法 3.1 开放地址法 3.1.1 线性探测法 3.1.2 二次探测法 3.2 链地址法 3…...

智慧乡村数字化农业全产业链服务平台建设方案PPT(99页)

1. 农业全产业链概念 农业全产业链是依托数字化、电子商务、云计算等技术&#xff0c;整合规划咨询、应用软件设计与开发等服务&#xff0c;推动农业产业升级和价值重塑&#xff0c;构建IT产业融合新生态。 2. 产业链技术支撑 利用云计算、大数据、区块链等技术&#xff0c;为…...

Mysql -- 基础

SQL SQL通用语法&#xff1a; SQL分类&#xff1a; DDL: 数据库操作 查询&#xff1a; SHOW DATABASES&#xff1b; 创建&#xff1a; CREATE DATABASE[IF NOT EXISTS] 数据库名 [DEFAULT CHARSET字符集] [COLLATE 排序规则]&#xff1b; 删除&#xff1a; DROP DATABA…...

《AI大模型应知应会100篇》第14篇:大模型商业化现状:主流应用场景及盈利模式

第14篇&#xff1a;大模型商业化现状&#xff1a;主流应用场景及盈利模式 摘要 近年来&#xff0c;大模型&#xff08;如Qwen、DeepSeek、GPT、BERT等&#xff09;以其强大的语言理解和生成能力引发了技术界的广泛关注。然而&#xff0c;如何将这些前沿技术转化为商业价值&am…...

深入理解linux操作系统---第3讲 基本操作与基本管理

3.1 shell基本功能与基本概念 3.1.1 shell基本功能 Shell是Linux系统的核心交互工具&#xff0c;主要功能包括&#xff1a; 程序启动与进程管理&#xff1a;通过命令行将程序名传递给内核执行&#xff0c;支持进程的后台运行与监控&#xff08;如ps、kill命令&#xff09;文…...

Go:函数

函数 函数声明 func name(parameter-list) (result-list) { body }函数声明包含函数名、形参列表、可选的返回列表以及函数体 。形参列表指定由调用者传递的变量参数名和类型&#xff1b;返回列表指定函数返回值类型 &#xff0c;无返回值或返回未命名值时&#xff0c;返回列…...

swagger 注释说明

一、接口注释核心字段 在 Go 的路由处理函数&#xff08;Handler&#xff09;上方添加注释&#xff0c;支持以下常用注解&#xff1a; 注解名称用途说明示例格式Summary接口简要描述Summary 创建用户Description接口详细说明Description 通过用户名和邮箱创建新用户Tags接口分…...

【C++】C与C++、C++内存空间、堆与栈

C嘎嘎嘎嘎嘎~ C与C的区别与联系 C内存空间 int global_var; // 未初始化全局变量&#xff0c;BSS段 const char* str "Hello"; // 字符串常量text段 in数据段void func() {static int static_var; // 未初始化的静态变量&#xff0c;数据段int local_var; …...

从零训练LLM-1.训练BPE

文章目录 BPE 简介BPE (Byte-Pair Encoding) 算法训练流程BPE 编码流程BPE 评估代码 参考 本文基于 HF -tokenizer 训练&#xff0c;更便捷 BPE 简介 分词器将单词从自然语言通过“词典”映射到0, 1, 36这样的数字&#xff0c;可以理解为数字就代表了单词在“词典”中的页码。…...

shield.io网站|markdown中适用的“徽标”

动态的我还没看是怎么弄&#xff0c;但是应该和静态的差不多&#xff0c;因此本文仅讨论静态徽标 静态徽标效果 创建方法 网址&#xff1a;Shields.io | Shields.io 进入之后点击“Badges”标签进入网页创建徽标的页面&#xff0c;根据文档中对每个属性的介绍在右侧将自己预…...

Vue 3 自定义指令

Vue 3 是一个非常强大的前端框架&#xff0c;它不仅提供了简单易用的 API&#xff0c;还支持多种高级功能&#xff0c;以便开发者根据需要扩展和优化应用。在 Vue 中&#xff0c;自定义指令是一种非常灵活的功能&#xff0c;它允许我们为 DOM 元素添加特定的行为&#xff0c;扩…...

25某团校招后端开发一面

一、进程通信和线程通信方式 进程通信方式 管道&#xff08;Pipe&#xff09; 半双工通信&#xff0c;数据单向流动&#xff0c;仅用于有亲缘关系的进程&#xff08;如父子进程&#xff09;。通过内核缓冲区实现数据传输&#xff0c;如父进程写、子进程读。命名管道&#xff…...

音视频学习(三十四):H264中的宏块

什么是宏块&#xff1f; 在 H.264 中&#xff0c;宏块是编码图像时最小的处理单位。它的核心作用包括&#xff1a; 帧内预测&#xff08;Intra Prediction&#xff09;帧间预测&#xff08;Inter Prediction&#xff09;变换、量化、熵编码等 标准定义&#xff1a; 一个宏块…...

Pandas 中透视表(`pivot_table`)和交叉表(`crosstab`)的区别

Pandas 中透视表&#xff08;pivot_table&#xff09;和交叉表&#xff08;crosstab&#xff09;的区别 核心区别 透视表 (pivot_table) 用于对数据进行 聚合计算&#xff08;如求和、均值、计数等&#xff09;。支持多维度分组&#xff08;行、列、甚至多层索引&#xff09;。…...

Restful风格接口开发

目录 Restful Apifox 介绍 端口号8080怎么来的&#xff1f; 为什么要使用Apifox? Restful 如果请求方式是Post&#xff0c;那我就知道了要执行新增操作&#xff0c;要新增一个用户 如果请求方式是Put&#xff0c;那就代表我要修改用户 具体要对这些资源进行什么样的操…...

20250414| AI:RAG多路召回和融合重排序技术

好的&#xff01;以下是对RAG&#xff08;检索增强生成&#xff09;中多路召回和融合重排序技术的详细解释&#xff0c;结合解释学习的视角&#xff0c;帮助你更好地理解和学习。这些技术是RAG系统的核心组成部分&#xff0c;决定了检索阶段的效果和最终生成答案的质量。我会尽…...

基于时间序列分解与XGBoost的交通通行时间预测方法解析

一、问题背景与数据概览 在城市交通管理系统中,准确预测道路通行时间对于智能交通调度和路径规划具有重要意义。本文基于真实道路传感器数据,构建了一个结合时间序列分解与机器学习模型的预测框架。数据源包含三个核心部分: 道路通行数据(new_gy_contest_traveltime_train…...

论文精度:HeightFormer:基于Transformer的体素高度预测在路边3D目标检测中的应用

论文地址:https://arxiv.org/pdf/2503.10777 1. 背景与问题定义 1.1 路边视觉3D检测的重要性 在自动驾驶领域,车辆端的视觉感知系统面临视角局限性​(如遮挡、短距离感知)和安全挑战。相比之下,​路边摄像头通过高位安装,可覆盖更广的感知范围(如交叉路口、高速公路)…...

华为手机清理大数据的方法

清理手机最大的问题是&#xff0c;手动和自动清理了多次&#xff0c;花费了很长时间&#xff0c;但是只腾挪出来了一点点空间&#xff0c;还是有很大空间无法使用&#xff0c;这篇文章就告诉你怎样做&#xff0c;以花瓣剪辑为例&#xff0c;如下&#xff1a; 删除数据&#xff…...

tcp特点+TCP的状态转换图+time_wait详解

tcp特点TCP的状态转换图time wait详解 目录 一、tcp特点解释 1.1 面向连接 1.1.1 连接建立——三次握手 1.1.2 连接释放——四次挥手 1.2 可靠的 1.2.1 应答确认 1.2.2 超时重传 1.2.3 乱序重排 1.2.4 去重 1.2.5 滑动窗口进行流量控制 1.3 流失服务&#xff08;字节…...

flutter 桌面应用之窗口自定义

在开发桌面软件的时候我们经常需要配置软件的窗口的大小以及位置 我们有两个框架选择:window_manager和bitsdojo_window 对比bitsdojo_window 特性bitsdojo_windowwindow_manager自定义标题栏✅ 支持❌ 不支持控制窗口行为&#xff08;大小/位置&#xff09;✅&#xff08;基本…...

【C++】NAN相关研究

先说结论&#xff1a;NAN对比一切都是false INF 对INF 是true 正无穷与正无穷比较相等&#xff0c;正无穷与负无穷比较不相等 window linux环境下基本相同&#xff0c; debug release基本相同 NAN -NAN INF -INF 不做论述 // TestNan.cpp : 此文件包含 "main" 函数。…...

windows下Git安装及其IDEA配置

1.下载Git安装包 阿里镜像链接&#xff08;建议从这里下载&#xff0c;速度很快&#xff09; git-scm.com&#xff08;官方网站&#xff0c;提供了各个平台&#xff08;Windows、Mac、Linux&#xff09;的安装程序&#xff09; 选择版本号后&#xff0c;在选择此版本的不同包…...

迷你世界脚本脚本常见问题

脚本常见问题 彼得兔 更新时间: 2024-05-22 17:54:44 在查阅开发者学院中的脚本API时&#xff0c;若有任何问题或建议&#xff0c;欢迎通过问卷进行反馈&#xff01;【点我填写问卷】 1.Block中的data在什么地方使用 data使用有具体需求,此处不建议开发者使用。开发者尽可能使…...

2025蓝桥杯C++ A组省赛 题解

昨天打完蓝桥杯本来想写个 p y t h o n python python A A A 组的题解&#xff0c;结果被队友截胡了。今天上课把 C A CA CA 组的题看了&#xff0c;感觉挺简单的&#xff0c;所以来水一篇题解。 这场 B B B 是一个爆搜&#xff0c; C C C 利用取余的性质比较好写&#…...

链接世界:计算机网络的核心与前沿

计算机网络引言 在数字化时代&#xff0c;计算机网络已经成为我们日常生活和工作中不可或缺的基础设施。从简单的局域网&#xff08;LAN&#xff09;到全球互联网&#xff0c;计算机网络将数以亿计的设备连接在一起&#xff0c;推动了信息交换、资源共享以及全球化的进程。 什…...

MySQL 常见存储引擎全解析:InnoDB、MyISAM、Memory 等对比与实战

一、什么是存储引擎&#xff1f; 存储引擎&#xff08;Storage Engine&#xff09;是 MySQL 中负责数据存储与管理的底层模块。不同的存储引擎负责处理表的读写、索引维护、事务支持、崩溃恢复等机制。 在创建表时可以指定使用的存储引擎&#xff1a; CREATE TABLE user (id…...

21天Python计划:零障碍学语法(更新完毕)

目录 序号标题链接day1Python下载和开发工具介绍https://blog.csdn.net/XiaoRungen/article/details/146583769?spm1001.2014.3001.5501day2数据类型、字符编码、文件处理https://blog.csdn.net/XiaoRungen/article/details/146603325?spm1011.2415.3001.5331day3基础语法与…...

Python中NumPy的统计运算

在数据分析和科学计算领域&#xff0c;Python凭借其丰富的库生态系统成为首选工具之一&#xff0c;而NumPy作为Python数值计算的核心库&#xff0c;凭借其高效的数组操作和强大的统计运算功能&#xff0c;广泛应用于机器学习、信号处理、统计分析等场景。本文将系统介绍NumPy在…...

SQL 解析 with as

sql的运行顺序 <select id"getTrendList" parameterType"java.util.HashMap" resultType"java.util.Map"><![CDATA[WITH-- 生成连续年份列表&#xff08;当前年前8年到前1年&#xff09;year_range AS (SELECT EXTRACT(YEAR FROM SYSD…...

07-算法打卡-链表-移除链表-leetcode(203)-第七天

1 题目地址 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09;203. 移除链表元素 - 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a;[https://assets.leetc…...

抓包神器,自研EtherCAT抓包工具

大家好&#xff0c;博主自研了一款以太网抓包神器&#xff0c;可以用于EtherCAT抓包。 把抓包工具接入以太网总线中&#xff0c;就能正常使用了。 上位机软件采用wireshark。 开启以下协议 抓包截图如下 时间戳的精度为5ns。...

五、adb常用命令

SDK路径下的 \Android\Sdk\platform-tools\adb.exe adb devices 查看连接的设备 adb shell getprop ro.build.version.release 查看系统版本 adb shell dumpsys window windows | findstr mFocusedApp 获取正在运行的app启动包名 结果为空&#xff0c;我不知道是不是Android…...