Leetcode 01 java
两数之和
/*
给定一个整数数组 nums 和一个整数目标值 target,
请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。*/
1 处理字符串格式输入
Q: 只给提示不给答案,我的意思是,题目给我的输入就是nums = [2,7,11,15], target = 9,这和平时我们就淳朴的输入2 7 11 15 9 不太一样,我要怎么处理,给点提示?
A:
你需要处理的是类似 nums = [2,7,11,15], target = 9
这样的字符串格式输入,而不是直接的整数数组。以下是关键提示:
提示 1:字符串解析
- 提取数组部分:从输入中分离出
[2,7,11,15]
和9
。 - 去除括号:将
[2,7,11,15]
转换为2,7,11,15
。 - 分割字符串:用逗号分隔每个元素,得到字符串数组
["2", "7", "11", "15"]
。
提示 2:字符串转整数
- 将字符串数组(如
["2", "7"]
)转换为整数数组(如[2, 7]
)。 - 使用
Integer.parseInt()
方法。
提示 3:提取目标值
- 从
target = 9
中提取出整数9
。 - 可以先按
=
分割字符串,再转换为整数。
提示 4:示例步骤
- 输入字符串:
nums = [2,7,11,15], target = 9
- 分割为两部分:
nums = [2,7,11,15]
target = 9
- 处理数组部分:
- 去除
nums = [
和]
,得到2,7,11,15
。 - 按逗号分割,转换为整数数组。
- 去除
- 处理目标值:
- 提取
9
并转换为整数。
- 提取
工具提示
- 使用
String.split()
方法分割字符串。 - 使用
String.trim()
方法去除空格。 - 使用
substring()
方法截取子字符串。
建议:先尝试手动解析示例输入,再编写代码实现。如果遇到具体问题(如括号处理),可以进一步提问。
2 我只需要实现方法签名不需要实现main函数,其实给自己徒增烦恼了虚晃一枪~
这个函数签名 public int[] twoSum(int[] nums, int target)
是题目要求你实现的核心算法部分,它接收一个整数数组 nums
和一个目标值 target
,需要返回两个下标组成的数组。
关键理解:
-
函数作用:
你不需要处理输入输出(如读取nums = [2,7,11,15], target = 9
这样的字符串),只需要实现算法逻辑。- 调用示例:
twoSum(new int[]{2, 7, 11, 15}, 9)
→ 应返回[0, 1]
。
- 调用示例:
-
输入参数:
nums
:已经是整数数组(无需自己解析字符串)。target
:已经是整数(无需自己提取和转换)。
-
返回值:
- 返回一个包含两个下标的整数数组,表示和为
target
的两个数的位置。
- 返回一个包含两个下标的整数数组,表示和为
示例调用流程(你不需要写这段代码,仅用于理解):
java
// 主函数(你不需要实现这个,仅为示例)
public static void main(String[] args) {int[] nums = {2, 7, 11, 15};int target = 9;int[] result = twoSum(nums, target); // 调用你实现的方法System.out.println(Arrays.toString(result)); // 输出 [0, 1]
}
你需要做的:
在 twoSum
方法内部实现算法逻辑,找到两个数的下标并返回。例如:
java
public int[] twoSum(int[] nums, int target) {// 遍历数组,找到两个数的和等于target// 返回它们的下标,例如 new int[]{0, 1}
}
提示:
- 可以使用暴力法(双重循环)或哈希表优化。
- 不需要处理输入输出,只需要关注算法本身。
- 确保返回的下标是有效的(例如,不要返回负数或越界的下标)
3 return 字符串怎么写?
对于这道题目!其实不可以写成字符串,原来的方法签名里面声明的是int类型,我可以返回数组哦!!
我原来的错误的代码
class Solution {public int[] twoSum(int[] nums, int target) {int n = nums.length;int[] a = null;for (int i = 0; i < n; i++) {for (int j = n - 1; j > i; j--) {if (nums[i] + nums[j] == target) {a[0]=i;a[1]=j;}}}return a;}
}
报错:
java.lang.NullPointerException: Cannot store to int array because "<local4>" is null at line 8, Solution.twoSum at line 56, __DriverSolution__.__helper__ at line 89, __Driver__.main
因为数组a
被初始化为null
,却直接被用来存储索引值。
修改后:
class Solution {public int[] twoSum(int[] nums, int target) {int n = nums.length;for (int i = 0; i < n; i++) {for (int j = n - 1; j > i; j--) {if (nums[i] + nums[j] == target) {return new int[]{i, j};}}}return new int [0];}
}
当前的双重循环方法效率较低(时间复杂度为 O (n²))
4 哈希表优化,改进建议:
如果你需要处理大规模数据,当前的双重循环方法效率较低(时间复杂度为 O (n²))。可以使用哈希表将时间复杂度优化到 O (n):
java
import java.util.HashMap;
import java.util.Map;class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int complement = target - nums[i];if (map.containsKey(complement)) {return new int[]{map.get(complement), i};}map.put(nums[i], i);}return new int[0];}
}
这个优化版本使用哈希表记录每个元素的索引,只需遍历数组一次。
5 NullPointerException
(空指针异常)
在 Java 编程里,NullPointerException
(空指针异常)是一种极为常见的运行时异常。当程序试图对一个值为null
的对象引用进行操作时,就会触发该异常。下面为你详细介绍它的相关情况:
1. 触发原因
当出现以下这些操作时,就可能引发NullPointerException
:
- 调用
null
对象的方法。 - 访问或修改
null
对象的字段。 - 获取
null
对象的长度,就像把null
当作数组去操作。 - 访问或修改
null
对象的数组元素。 - 把
null
当作Throwable
类型来抛出。
2. 典型示例
下面通过一些代码示例,展示NullPointerException
是如何产生的:
java
// 示例1:调用null对象的方法
String str = null;
str.length(); // 这里会抛出NullPointerException// 示例2:访问null对象的字段
class Person {String name;
}
Person p = null;
p.name = "John"; // 这行代码会触发异常// 示例3:操作null数组
int[] arr = null;
arr[0] = 1; // 此处会引发异常
3. 解决办法
为了避免出现NullPointerException
,可以采用以下几种方法:
- 进行空值检查
在使用对象之前,先判断它是否为null
:
java
if (str != null) {System.out.println(str.length());
}
- 合理初始化对象
在声明对象时,就对其进行初始化:
java
String str = ""; // 初始化为空字符串,而非null
- 使用
Optional
类
Java 8 引入的Optional
类,能有效避免显式的空值检查:
java
import java.util.Optional;Optional<String> optStr = Optional.ofNullable(str);
optStr.ifPresent(s -> System.out.println(s.length()));
- 借助 IDE 工具
利用 IDE 的静态分析功能,比如 IntelliJ IDEA 的@NotNull
注解:
java
public void printLength(@NotNull String str) {System.out.println(str.length());
}
4. 调试建议
当遇到NullPointerException
时,可以按照以下步骤进行调试:
- 查看异常堆栈信息,确定是哪一行代码抛出了异常。
- 找出导致
null
的对象引用。 - 分析这个引用为什么会是
null
,是赋值失败,还是没有正确初始化。 - 添加必要的空值检查或者初始化代码。
5. 在你的代码中出现的问题
在你之前提供的代码里:
java
int[] a = null;
// ...
a[0] = i; // 这里会抛出NullPointerException,因为a为null
要解决这个问题,应该在使用数组之前对其进行初始化:
java
int[] a = new int[2]; // 初始化数组
a[0] = i;
a[1] = j;
不过更好的做法是直接返回一个新数组:
java
return new int[]{i, j};
总结
NullPointerException
是由于对null
对象进行操作而引发的。要避免这种异常,关键在于进行严格的空值检查、合理初始化对象,或者使用像Optional
这样的工具类。在调试时,要仔细分析异常堆栈信息,找出导致null
的根源。
6 java中的哈希表(Hash Table)
在 Java 中,哈希表是通过一系列实现了Map
接口的类来实现的,主要包括HashMap
、Hashtable
、LinkedHashMap
和TreeMap
等。这些类各有特点,但核心原理都是基于哈希函数实现键值对的快速存储和检索。
核心类与特点
1. HashMap
- 特点:
- 线程不安全,允许
null
键和null
值。 - 无序,不保证元素顺序。
- 初始容量为 16,负载因子 0.75(当元素数量超过容量 × 负载因子时自动扩容)。
- 线程不安全,允许
- 基本用法:
java
import java.util.HashMap;
import java.util.Map;public class HashMapExample {public static void main(String[] args) {// 创建HashMapMap<String, Integer> map = new HashMap<>();// 添加元素map.put("apple", 1);map.put("banana", 2);map.put(null, 0); // 允许null键// 访问元素System.out.println(map.get("apple")); // 输出: 1// 遍历元素for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println(entry.getKey() + ": " + entry.getValue());}// 删除元素map.remove("banana");}
}
2. Hashtable
- 特点:
- 线程安全(所有方法都被
synchronized
修饰),但性能较低。 - 不允许
null
键或null
值,否则抛出NullPointerException
。 - 继承自
Dictionary
类,已逐渐被HashMap
替代。
- 线程安全(所有方法都被
- 基本用法:
java
import java.util.Hashtable;
import java.util.Map;public class HashtableExample {public static void main(String[] args) {Map<String, Integer> table = new Hashtable<>();table.put("apple", 1);table.put("banana", 2);// table.put(null, 0); // 报错: NullPointerException}
}
3. LinkedHashMap
- 特点:
- 继承自
HashMap
,维护插入顺序或访问顺序(通过构造函数参数指定)。 - 适合需要按顺序遍历的场景,如实现 LRU 缓存。
- 继承自
- 示例(按访问顺序排序):
java
import java.util.LinkedHashMap;
import java.util.Map;public class LinkedHashMapExample {public static void main(String[] args) {// 第三个参数true表示按访问顺序排序LinkedHashMap<String, Integer> linkedMap = new LinkedHashMap<>(16, 0.75f, true) {@Overrideprotected boolean removeEldestEntry(Map.Entry<String, Integer> eldest) {return size() > 3; // 保持最多3个元素,超出时移除最老的}};linkedMap.put("a", 1);linkedMap.put("b", 2);linkedMap.put("c", 3);linkedMap.get("a"); // 访问"a",使其变为最近访问linkedMap.put("d", 4); // 插入"d",触发移除最老的"b"System.out.println(linkedMap); // 输出: {c=3, a=1, d=4}}
}
4. TreeMap
- 特点:
- 基于红黑树实现,按键的自然顺序或自定义比较器排序。
- 不允许
null
键(除非自定义比较器支持)。 - 适合需要有序遍历的场景(如范围查询)。
- 示例(按键排序):
java
import java.util.Map;
import java.util.TreeMap;public class TreeMapExample {public static void main(String[] args) {Map<Integer, String> treeMap = new TreeMap<>();treeMap.put(3, "apple");treeMap.put(1, "banana");treeMap.put(2, "cherry");// 按键升序输出for (Map.Entry<Integer, String> entry : treeMap.entrySet()) {System.out.println(entry.getKey() + ": " + entry.getValue());}// 输出: // 1: banana// 2: cherry// 3: apple}
}
哈希冲突处理
当两个不同的键产生相同的哈希值时,Java 的哈希表使用 ** 链地址法(Chaining)** 处理冲突:
- 每个哈希桶(Bucket)存储一个链表或红黑树。
- 当冲突元素较少时,使用链表;当链表长度超过 8 且容量≥64 时,自动转换为红黑树(JDK 8+),以提高查询效率。
性能优化
- 初始容量与负载因子:
- 预估元素数量,避免频繁扩容。
- 负载因子越小,空间换时间,冲突概率降低;反之则节省空间但可能增加冲突。
- 键的设计:
- 键必须正确重写
hashCode()
和equals()
方法。 - 示例:
- 键必须正确重写
java
public class Person {private String name;private int age;// 构造函数、getter/setter省略@Overridepublic int hashCode() {return Objects.hash(name, age); // JDK 7+ 推荐写法}@Overridepublic boolean equals(Object obj) {if (this == obj) return true;if (obj == null || getClass() != obj.getClass()) return false;Person other = (Person) obj;return age == other.age && Objects.equals(name, other.name);}
}
线程安全方案
- Hashtable:所有方法同步,性能差。
- Collections.synchronizedMap():包装
HashMap
,实现同步。 - ConcurrentHashMap(推荐):
- 分段锁(JDK 7 及以前)或 CAS(JDK 8+)实现高效并发。
- 允许并发读写,读操作无锁,写操作仅锁定当前桶。
java
import java.util.concurrent.ConcurrentHashMap;public class ConcurrentHashMapExample {public static void main(String[] args) {ConcurrentHashMap<String, Integer> concurrentMap = new ConcurrentHashMap<>();concurrentMap.put("apple", 1);concurrentMap.putIfAbsent("banana", 2); // 原子操作,避免竞态条件}
}
应用场景
- 缓存(如 LRU 缓存)。
- 数据库索引。
- 统计频率(如词频统计)。
- 唯一性检查(如判断元素是否存在)。
通过合理选择哈希表实现类和参数调优,可以在各种场景中发挥其 O (1) 时间复杂度的优势。
相关文章:
Leetcode 01 java
两数之和 /* 给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回…...
30天自制操作系统day5(vram和显存)(GDT和IDT)(c语言结构体)(汇编-c)(ai辅助整理)
day5 harib02d c语言结构体的一些解释 struct BOOTINFO { char cyls, leds, vmode, reserve; short scrnx, scrny; char *vram; }; //最开始的struct命令只是把一串变量声明集中起来,统一叫做“struct BOOTINFO”。 //最初是1字节的变量cyls,接着是1字…...
Linux僵死进程以及文件操作
僵死进程 僵死进程产生的原因: 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程。 如何处理僵死进程: (1)父进程先结束(子进程会变成孤儿进程,孤儿…...
19 C 语言位运算、赋值、条件、逗号运算符详解:涵盖运算符优先级与复杂表达式计算过程分析
1 位运算符 位运算符是对整数的二进制表示(补码形式)进行逐位操作的运算符。以下是主要的位运算符及其功能描述: 运算符描述操作数个数副作用&按位与2无|按位或2无^按位异或2无~按位取反1无<<按位左移2无>>按位右移2无 1.1…...
ubuntu下实时检测机械硬盘和固态硬盘温度
sudo apt update sudo apt install smartmontools然后,使用smartctl命令查看硬盘的详细信息,包括温度: sudo smartctl -a /dev/sda实时监控硬盘温度 虽然smartctl不能直接实时显示温度,你可以使用watch命令结合smartctl来定期查…...
游戏开发实战(三):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
文章目录 奇美拉类摸鱼仔,负能量,真老实,小坏蛋,压力怪治愈师小团体画饼王平凡王坏脾气抗压包请假狂请假王内卷王受气包跑路侠看乐子背锅侠抢功劳急先锋说怪话帮倒忙小夸夸工作狂职业经理严酷恶魔职场清流 开始工作吧小奇美拉没想…...
DeepSpeed简介及加速模型训练
DeepSpeed是由微软开发的开源深度学习优化框架,专注于大规模模型的高效训练与推理。其核心目标是通过系统级优化技术降低显存占用、提升计算效率,并支持千亿级参数的模型训练。 官网链接:deepspeed 训练代码下载:git代码 一、De…...
AIGC降重工具
使用 PyQt5 和 Python-docx 实现AIGC降重工具 在日常工作中,文档处理是一个常见的任务,尤其是对于需要批量处理文档内容的场景。今天,我将分享一个使用 PyQt5 和 Python-docx 库实现的简单文档处理工具。这个工具可以帮助用户选择文档文件&a…...
PYTHON训练营DAY31
项目拆分 src/data/load_data.py # -*- coding: utf-8 -*- import sys import io # 设置标准输出为 UTF-8 编码 sys.stdout io.TextIOWrapper(sys.stdout.buffer, encodingutf-8) import pandas as pddef load_data(file_path: str) -> pd.DataFrame:"""加…...
使用VGG-16模型来对海贼王中的角色进行图像分类
动漫角色识别是计算机视觉的典型应用场景,可用于周边商品分类、动画制作辅助等。 这个案例是一个经典的深度学习应用,用于图像分类任务,它使用了一个自定义的VGG-16模型来对《海贼王》中的七个角色进行分类,演示如何将经典CNN模型…...
AI-02a5a7.神经网络-与学习相关的技巧-正则化
过拟合 过拟合指的是只能拟合训练数据,但不能很好地拟合不包含在训练数据中的其他数据的状态。 在机器学习的问题中,过拟合是很常见的问题。 而机器学习的目标是提高泛化能力,即便是没有包含在训练数据里的未观测数据,也希望模…...
C# 常用密码加密与解密技术完全指南
目录 密码安全的核心概念 加密 vs 哈希:何时使用? 密钥管理的重要性 常见攻击手段(中间人攻击、彩虹表) 基础加密技术 对称加密(AES) 非对称加密(RSA) 哈希算法(SH…...
C++ QT 与 win32 窗口可以互操作
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->setWindowTitle("天下第一剑"); // HWND hwnd FindWindow(L"天下第一剑",L"天下第一剑"); // qDebug()<<…...
MySQL--day4--排序与分页
(以下内容全部来自上述课程) 1. 排序数据 1.1 排序基本使用 #1.排序 #如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的 SELECT * FROM employees;# 练习:按照salary从高到低的顺序显示员工信息 # 使用 ORDER …...
文件操作和IO—初识文件
认识文件 狭义上的文件(file),是针对硬盘这种持久化存储的IO设备,当我们想要进行数据保存的时候,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念…...
P2670 [NOIP 2015 普及组] 扫雷游戏
P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷 #include<bits/stdc.h> using namespace std; int n,m; char a[105][105]; int main(){cin>>n>>m;for(int i1;i<n;i){for(int j1;j<m;j){cin>>a[i][j];}}for(int i1;i<n;i){for(int j1;j<m;j){…...
HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
1. SGCC_Electricity 应用介绍 SGCC_Electricity 是一个用于将国家电网(State Grid Corporation of China,简称 SGCC)的电费和用电量数据接入 Home Assistant 的自定义集成组件。通过该应用,用户可以实时追踪家庭用电量情况&…...
02 基本介绍及Pod基础排错
01 yaml文件里的字段错误 # 多打了一个i导致的报错 [rootmaster01 yaml]# cat 01-pod.yaml apiVersion: v1 kind: Pod metadata:name: likexy spec:contaiiners:- name: aaaimage: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 [rootmaster01 yaml]# kubectl …...
9 定时任务与周期性调度
一、定时任务核心机制 1.1 基础调度配置 # celery.py from celery import Celery from celery.schedules import crontabapp Celery(proj) app.conf.beat_schedule {daily-report: {task: report.generate,schedule: crontab(hour3, minute30), # 每天3:30执行args: (),op…...
macOS 效率工具对比分析:Raycast、Alfred、uTools、Spotlight
macOS 效率工具对比分析:Raycast、Alfred、uTools、Spotlight 对比分析四款常见 macOS 高效工具,涵盖功能、插件生态、开发者支持、适用人群等维度,帮助你选择最适合自己的效率助手。 🔍 一、基本介绍 工具名简介SpotlightmacOS …...
接口测试速成指南:基础知识+工具使用全解析
你是否也有这样的经历:项目初期接口文档混乱,测试人员无从下手;开发说接口OK,测试却频繁遇坑?别怕,接口测试并没你想得那么难! “接口测试怎么做?用什么工具?”面试官一…...
SpringSecurity基础入门
一个身份认证、授权、防御常见攻击的框架。 spring security 中文网:Spring Security中文网 自定义配置 基于内存的用户认证 实现步骤如下: 在配置类中创建security的配置类: Configuration //声明当前类为配置类 EnableWebSecurity //…...
MySQL的安装及相关操作
目录 一. 数据库产生的背景 二. 数据库操作系统的组成 2.1 数据库(Database) 2.2 数据库管理系统(DBMS, Database Management System) 2.3 应用程序(Application) 三. 数据库的分类 3.1 关系数据库 3.2 非关系数据库 四. MySQL安装 4.1yum安装 1. Ubuntu 2. cent…...
【Code】Foundations 2017- Catalogue, List of Tables, List of Figures
Foundations 2017 目录 | Catalogue表格目录 | List of Tables图表目录 | List of Figures 目录 | Catalogue 英文原文中文翻译词汇学习(音标和解释)1. General1. 总则1.1 Scope1.1 范围1.2 Glossary1.2 术语表Glossary [ˈɡlɒsəri] 术语表ÿ…...
【TCGA-CRC】TCGA数据读取
写在前面 参考已有的帖子写的,但是临床数据和UCSC的不同。有知道的小伙伴欢迎指正。 rm(list ls()); gc() test1 data.table::fread("./00_Rawdata/GDCdata/TCGA-COAD/Transcriptome_Profiling/Gene_Expression_Quantification/00ae9ab8-6eaa-4085-af72-26…...
BYUCTF 2025
几周没会的比赛了,都是一题游。这周的BYU还不错,难度适中,只是时间有点短。周末时间不够。 Crypto Many Primes from Crypto.Util.number import bytes_to_long, getPrime import randomflag open("flag.txt").read().encode()…...
【Linux】初见,基础指令(续)
前言: 上文讲解了部分指令,本文我们来讲解剩下的指令【Linux】初见,基础指令-CSDN博客 cat指令 语法:cat 选项 文件 功能:打印文件中的内容 选项: -b 对非空行输出进行编号 -n 对输出的说有行进行编号…...
《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记
Paper:2405.16105 Github:GitHub - wengjiangwei/MambaLLIE 目录 摘要 一、介绍 二、相关工作 2.1 低光图像增强 2.2 视觉空间状态模型 三、方法 3.1 预备知识 3.2 整体流程 3.3 全局优先-局部次之状态空间块 四、实验 4.1 基准数据集与实施细节 4.2 对比实验 4…...
计算机图形学Games101笔记--几何
第二部分:几何 几何介绍 光栅化解决如何渲染,几何研究模型如何存储在GPU的内存中。几何主要分为两种:隐式几何和显式几何。 **隐士几何:**用点之间的关系存储,如球的计算公式。更一般的可以用f(x,y,z)。我们可以令f…...
Web开发-Python应用Flask框架Jinja模版绑定路由参数传递页面解析SSTI注入
知识点: 1、安全开发-Python-Flask&Jinja2 2、安全开发-Python-路由传参&SSTI注入 演示案例-WEB开发-Python-Flask框架&Jinja2模版&路由传参&SSTI注入 0、Pycharm 配置Python解析 新建Flask项目 1、路由传参 app.route(/) app.route(/<id…...
聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!
随着2025高通边缘智能创新应用大赛的推进,越来越多的参赛者关注如何借助高性能硬件突破技术瓶颈、打造差异化作品。 5月27日晚8点,大赛将开启初赛阶段的第五场专题公开课——由美格软件研究院院长李书杰领衔,深入解析高通平台的底层架构与参…...
NMOS和PMOS的区别
1 区分NMOS和PMOS:衬底箭头指向G级的是NMOS,衬底箭头背向G级的是PMOS 2 区分D和S级:针对NMOS,体二极管的正方向为S级;针对PMOS,体二极管正的方向为D级 3 区分电流方向:针对NMOS,电…...
Paillier加密方案的原理、实现与应用(vs)
一、实验目的 1、掌握NTL的基本配置和方法(以下是以visualstudio为例) 2、掌握Paillier加密方案的原理与实现 ①钥匙生成:首先,生成一把钥匙,包括钥匙和私钥匙。钥匙由两个大素数(p,q)的乘积n和一个整数g组成&#…...
Metal入门,使用Metal绘制3D图形
这次是使用Metal绘制一个立方体,并且添加旋转效果,绘制正方形的步骤很简单,我们绘制一个正方形就相当于绘制两个三角形,那么绘制一个正方体,我们很容易想到需要绘制他六个面,很显然,我们也需要把…...
Java 04 API
API 简介 一些已经写好的应用程序编程接口Object toString 默认返回的是当前对象在堆内存中的地址值信息:类的全类名十六进制哈希值返回该对象的返回值 class A{ } //返回的是地址哦 String sA.toString(); //细节:使用打印语句,打印对象…...
基于Gitee 的开发分支版本管理规范
一、版本管理规范概述 目的:规范代码分支管理和版本发布流程,提高团队协作效率,确保代码质量和版本可追溯性。适用范围:基于 Gitee 平台开发的所有项目。分支策略:采用 Git Flow 模型的变体,主要分支包括 …...
HOW - 结合 AI 进行 Tailwind 样式开发
文章目录 情况 1:使用 Tailwind CSS 与手写传统 CSS 的开发效率对比情况 2:AI Tailwind 自动生成 UI 的效率如何?总结 在 WHAT - Tailwind 样式方案(不写任何自定义样式) 中我们已经简单介绍过 Tailwind。今天主要认识…...
系统数据对接-从获取到处理的全流程
在后端架构的复杂生态中,子系统间或与外部系统的对接是常态,其核心要义在于实现数据的精准传输。本文聚焦于数据传输后的运算逻辑与异常处理机制,旨在为后端开发者提供深度见解。 一、数据获取机制:触发式与定时任务的权衡 &…...
Java 09Stream流与File类
Stream流与File类 Stream流 简化集合和数组的操作,startWith(“张”) 第一个为这个返回true String1.获取Stream对象 单列集合 双列集合 先获得键值对 在遍历数组 零散的数据 Stream<Integer> arrStream.of(1,2,34,3); stream.forEach(sss); 即可2.中间…...
《光与影:33号远征队》栩栩如生的角色动画是如何创建的?
《光与影:33号远征队》是一款由Sandfall Interactive公司开发的回合制RPG游戏,背景是一个黑暗的幻想世界。游戏因其独特的艺术风格和引人注目的叙事赢得了无数赞誉,成为今年大热游戏中的一匹黑马。 在该游戏制作中Sandfall依靠包括Xsens在内的…...
GESP2024年12月认证C++二级( 第三部分编程题(1)寻找数字)
参考程序(枚举): #include <iostream> //#include <cmath> using namespace std;int main() {int t;cin >> t;while (t--) {long long a;cin >> a;bool found false;// 枚举 b for (long long b 1; b * b * b * b…...
《探索具身智能机器人视觉-运动映射模型的创新训练路径》
视觉 - 运动映射模型作为实现智能交互与精准行动的核心,吸引着全球科研人员与技术爱好者的目光。这一模型就像机器人的 “神经中枢”,连接着视觉感知与肢体运动,使机器人能够在复杂的现实环境中灵活应对各种任务。 传统的视觉 - 运动映射模型…...
Python打卡DAY31
今日的示例代码包含2个部分 notebook文件夹内的ipynb文件,介绍下今天的思路项目文件夹中其他部分:拆分后的信贷项目,学习下如何拆分的,未来你看到的很多大项目都是类似的拆分方法 知识点回顾 规范的文件命名规范的文件夹管理机器学…...
【SPIN】PROMELA远程引用与控制流验证(SPIN学习系列--5)
PROMELA语言提供了两种强大的机制用于验证并发系统:远程引用(remote references)和进程变量引用。这些机制使得在不引入额外状态变量的情况下,能够精确描述系统状态和属性。 远程引用(Remote References) 远程引用允许你直接引用进程中的控制位置(labe…...
GMSL:汽车里的音视频传输
参考链接: blog.csdn.net/weixin_50875614/article/details/119995651 blog.csdn.net/syjie19900426/article/details/145269782 SerDes 应用场景 WHAT GMSL是什么 GMSL(Gigabit Multimedia Serial Links),中文名称为千兆多媒体串行链路,是Maxim公司推出的一种…...
Java并发进阶系列:深度讨论jdk1.8 ConcurrentHashMap并发环境下transfer方法桶位分配过程
在前面有多篇关于jdk1.8的ConcurrentHashMap研究是基于源代码给出的深度分析,要知道多线程环境下的ConcurrentHashMap内部运行机制是相对复杂的,好在IDEA提供的相关断点和Debug功能确实好用,使得多线程调试起来直观,通过这种方式能…...
【深度学习-Day 14】从零搭建你的第一个神经网络:多层感知器(MLP)详解
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
fdisk和parted的区别
在Linux系统中,fdisk和parted是两种常用的分区工具。虽然它们都可以对硬盘进行分区,但在功能和适用范围上有显著的区别。 fdisk fdisk主要用于MBR(主引导记录)分区表的管理。MBR分区表有以下特点: 支持小于2TB的硬盘…...
springMVC拦截器,拦截器拦截策略设置
目录 1、MyInterceptor1 2、UserController 3、MvcConfig,拦截器4种拦截方法策略 做请求的校验,如果校验没有通过,直接返回,原来下面的处理,就不用处理了 将request进行拦截校验 将response进行拦截校验 preHandle…...
如何测试北斗卫星通讯终端的性能?
测试北斗卫星通讯终端的性能需从功能、性能、环境适应性、可靠性等多维度展开,以下是具体测试内容与方法: 一、基础功能测试 验证终端是否满足北斗系统的核心通讯功能。 (1)通信模式测试 短报文通信 测试终端发送 / 接收短报…...