文章作者: 阿叶Ayeez
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 欢迎来到阿叶Ayeez的博客!
相关推荐

2025-10-28
如何解读财务三表之资产负债表

2025-10-15
BigInteger和BigDecimal
BigInteger 当有long类型也装不下的数,就可以用大整数BigInteger来装 对象一旦创建,里面的值不能改变 构造方法方法一: 获取一个随机的大整数获取随机最大整数,范围:[0~2的num次方-1]1BigInteger bd1 = new BigInteger(int num,Random rnd);代码实现:12345Random r = new Random();BigInteger bd1 = new BigInteger(4,r);//或者写:BigInteger bd2 = new BigInteger(4,new Random());System.out.println(bd1);//0~15 方法二:获取指定的大整数只能写整数!!!1BigInteger bd2 = new BigInteger("999999999999999999999999999999"); 方法三:获取指定进制的大整数只能写整数!!! 字符串中的数字必须要和进制吻合1BigInteger bd4 = new BigInteger("100&qu...

2025-10-08
优先队列笔记与例题
优先队列优先队列的本质是一个堆(用数组模拟一颗完全二叉树)可以拿出优先级最大的元素头文件<queue>优先级最高的都在顶端(堆顶元素)12345678910int main(){ priority_queue<int> que; //默认大根堆(大顶堆)(数字越大,优先级越高),比较方法less<int> priority_queue<int,vector<int>,greater<int>> que;//参数二是什么容器装,参数三是比较方法,变成小根堆(小顶堆)需要指定node类型,只能重载小于号 struct node{ int x,y; bool operator<(const node &b)const{ return this->x <b.x;//重载小于号less,大的数还是优先级更高,若重载大于号,小的数优先级更高 } }}que.size() 堆的元素个数que.push() 插入元素que.pop...

2025-10-06
一维差分笔记与例题
背景当你有一个数组,你要频繁地向里面的不同区间的数字进行加减的操作,比如说{3,1,4,1,5,9},你要向[0,2]减去二,变成{1,-1,2,1,5,9},然后向[1,3]加上2,变成{1,1,4,3,5,9},然后向[4,5]减去4变成{1,1,4,3,1,4},然后向[3,3]减去2……??????当这种操作数量足够多,需要频繁的区间更新,如果我们使用简单的遍历,对这些数字进行加减,那速度会非常慢。 解决方案使用一维差分 差分数组:对于一个给定的原始数组 nums,我们构造一个相同长度的差分数组 diff,其中:对要操作的区间开始的数字进行操作,对操作结束后的数字进行反向操作。作为一个差分数组diff,记录区间更新,在全部操作结束后,我们只需要对原数组进行一次遍历,让diff的后一位,累加到原数组里面,那么在区间内所有的数都会受到diff影响,在区间后,由于diff的反向操作,会抵消掉区间更新。 例题洛谷 P2367 语文成绩题目背景语文考试结束了,成绩还是一如既往地有问题。 题目描述语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增...

2025-10-10
二维前缀和、二维差分
二维前缀和二维前缀和可以快速查询二维数组任何范围上的元素累加和。如下图红色区域总和为:10我们就可以使用二维前缀和得到。下面先讲使用方法: 先将原数组复制一份 对每一个元素进行遍历,将遍历到的元素=(元素的左边一个元素)加(上面一个元素)减去(左上角的一个元素)加上(元素自己本身)。如图: 即”左加上加左上减,加自己“ 那么如果我们想得到红色框里面的元素总和,我们只需要用新数组(下图)的绿色-蓝色1-蓝色2+紫色 12-1-2+0=9那么原理呢?下图:(容斥原理)新数组中的元素代表什么呢?从左上角到元素的区域累加和。我们的数组按箭头顺序遍历,那么遍历到了问号的时候,前面的部分数组都已经是更改后的了,那么上述式子则表示绿色区域总和-蓝色区域1总和-蓝色区域2总和+重复的紫色区域总和,结果等于红色区域的总和 总结性笔记 目前是预处理出一个结构,以后每次查询二维数组任何范围上的累加和都是O(1)的操作1.根据原始状况,生成二维前缀和数组sum, sum[i][j]:代表左上角(0,0)到右下角(i,j)这个范围的累加和 sum[i][j]+=sum[i][j-1]+sum[i-1...

2025-10-14
常用api(System,Runtime,Object)
System类System是一个工具类,提供了一些与系统相关的方法。 计算机的时间原点 1970年1月1日 00:00:00 我们的位于东八区,实际上我们的时间原点会晚8个小时 1970年1月1日 08:00:00方法一:返回系统时间返回当前系统的时间毫秒值.12//返回当前系统的时间毫秒值public static long currentTimeMillis(); 可以利用这个方法来计算程序两处的时间差值,1秒=1000毫秒。方法二:终止虚拟机终止当前运行的Java虚拟机.12//status的值:0表示正常退出,非0表示程序异常终止。public static void exit(int status); 方法三:拷贝数组拷贝数组.12//括号里的参数:数据源数组,起始索引,目的数组,起始索引,拷贝个数public static void arraycopy(); 注意: 如果数组源数组和目的数组都是基本数据类型,那么两者的数据类型必须要保持一致,否则会报错。 在拷贝的时候需要考虑数组的长度,如果超出范围也会报错。 如果数据源数组和目的数组都是引用数据类型,那么子类类型可以...

2025-10-26
射击体系CAR(Center Axis Relock)硬核教学(莉可丽丝千束同款)
第一部分:CAR体系核心思想——为什么是它?在传统的韦弗或等腰三角射击姿势中,你的身体是“开放”的,正面迎敌。CAR体系的核心是 “侧身缩掩”。 对新人友好之处: 想象一下,你在生活中遇到危险时的本能反应——你是不是会侧身、缩起肩膀、保护要害?CAR就是把这个本能动作专业化、武器化。所以你学起来会非常自然。 不失深度之处: 这个简单的姿态背后,是极高的效率、更好的防护和复杂的枪口管理逻辑。 核心优势: 缩小暴露面积: 侧身姿态让你的身体投影面积最小,中弹概 率大大降低。 武器与身体一体化: 枪始终在身体中线上,移动、转向时,枪和人是一个整体,无比稳定。 近战优势: 在极近距离(CQC)下,枪贴紧身体,不易被敌人抢夺或干扰。 无缝衔接扫描与转换: 可以非常流畅地在不同目标和高低压准备姿态间切换。第二部分:四大核心技术要领(干货来袭!) 我们将CAR的核心技术分解为四个部分:High Position, Combat Position, Extended Position, 和 Z-Scan。你可以把它们想象成汽车档位:P档、D档、S档和R档,根据不同路况随时切换。 1. ...

2025-10-26
六种常见查找(c++实现)
顺序查找教程顺序查找是最简单的查找算法,从数据结构的起始位置开始,逐个比较每个元素,直到找到目标元素或者遍历完所有元素 特点 适用于无序和有序列表 时间复杂度:O(n) 空间复杂度:O(1)代码实现123456789//顺序查找函数(基本查找)int sequentialSearch(int arr[],int size, int target) { for (int i = 0;i < size;i++) { if (arr[i] == target) { return i;//返回目标元素的下标 } } return -1;//未找到目标元素,返回-1} 二分查找教程二分查找针对已经排序的数组,通过不断将搜索区间对半分割来快速定位目标元素 工作原理 确定数组的中间元素 如果中间元素等于目标值,查找成功 如果目标值小于中间元素,在左半部分继续查找 如果目标值大于中间元素,在右半部分继续查找特点 仅适用于有序数组 时间复杂度:O(log n) 空间复杂度:O(1)代码实现12345678910111...

2025-10-26
快速排序
快速排序思路第一轮以0为基准数,确定基准数在数组中应存放的位置,比基准数小的全都在基准数左边,比基准数大的全都在基准数右边,第二轮后面在基准数左右两边分别以此类推 步骤 记录基准数 定义两个变量记录要查找的范围(排序范围的左右两端用于遍历) 如图,6为基准数,start和end为定义的两个变量,他们会分别向中间遍历 end,从后往前开始找,找比基准数小的数字然后记录 start,从前往后开始找,找到比基准数大的数字然后记录 让start和end指向的元素进行交换 如图,找到后让5和7进行交换: 当左右两边指针相遇,那么他们指向的位置左边都比基准数小,右边都比基准数大,这个位置就是基准数应该存放的位置,让基准数和该位置交换 如图,让6和3交换: 放好第一次的基准数,第一轮结束,然后左右两边分别重复刚刚的步骤(递归调用自己)代码实现(java实现,逻辑相通)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849/** * 参数一:我们要排序的数组 ...

2025-11-19
Git使用指南:从入门到团队协作规范
更新知识同时给我们小团队写一个使用指南,详细程度介于快速入门和超详细git文档之间。并包含团队开发建议与规范。

2025-11-18
Java之Stream流
获取Stream流 单列集合 default Stream<E> stream() Collection中的默认方法 双列集合 无 无法直接使用stream流 数组 public static <T> Stream<T> stream(T[] array) Arrays工具类中的静态方法 一堆零散数据 public static<T> Stream<T> of(T...values) Stream接口中的静态方法 代码演示: 单列集合default Stream<E> stream() Collection中的默认方法 12345678910111213141516public static void main(String[] args) { //1.单列集合获取Stream流 ArrayList<String> list = new ArrayList<>(); Collections.addAl...

2025-10-27
Java常用api————Arrays
介绍Array是Java中一个常用的对数组进行操作的工具类。 常用方法总览public static String toString(数组) 把数组拼接成一个字符串public static int binarySearch(数组,查找的元素) 二分查找法查找元素public static int[] copyOf(原数组,新数组长度) 拷贝数组public static int[] copyOfRanger(原数组,起始数组,结束索引) 拷贝数组(指定范围)public static void fill(数组,元素) 填充数组public static void sort(数组) 按照默认指定方式对数组进行排序public static void sort(数组,排序规则) ...

2025-11-22
Java之File详解(含几个综合练习)
构造方法 方法 说明 public File(String pathname) 根据文件路径创建文件对象 public File(String parent,String child) 根据父路径名字符串和子路径名字符串创建文件对象 public File(File parent,String child) 根据父路径对应文件和子路径名字符串创建文件对象 代码演示 1.根据字符串表示的路径,变成File对象123String str = "D:\\Develop\\java\\learn\\basic_code\\a.txt"; File f1 = new File(str); System.out.println(f1); 2.父级路径:D:\Develop\java\learn\basic_code子级路径:a.txt1234String parent = "D:\\Develop\\java\\learn\\basic_code"; String child = "a.txt&quo...

2025-10-29
Java集合之Collection
Java 的 Collection 笔记Collection 接口概述集合分类 List系列集合:添加的元素是有序、可重复、有索引的Set系列集合:添加的元素是无序、不重复、无索引的Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的 创建Collection对象 Collecion是一个接口,我们不能直接创建他的对象所以,现在我们学习他的方法时,只能创建他的实现类对象实现类:ArrayList 目的:为了学习Collection接口里面的方法所以利用多态的方式来创建对象 1Collection<String> coll = new ArrayList<>(); Collection 常用方法基本操作方法 方法 说明 返回值 add(E e) 添加元素到集合 boolean clear() 清空集合所有元素 void remove(E e) 删除指定元素 boolean contains(Object obj) 判断是否包含元素 boolean isEmpty() 判断集合是否为空 boolea...

2025-10-24
Java时间类笔记(Date,SimpleDateFormat,Calendar)
前言学完了java的一些常用api,由于太多太杂,没有办法全部记下来,于是在idea敲了一遍后决定再写一篇笔记方便我反复查看。 Date类简述 java.util.Date 表示特定的瞬间,精确到毫秒 大部分方法已经过时,被Calendar类取代常用方法public Date() 创建Date对象,表示当前时间 public Date(long date)创建Date对象,表示指定时间 public void setTime(long time)设置/修改毫秒值 public long getTime() 获取时间对象的毫秒值 代码示例12345678910111213141516import java.util.Date;//创建Date对象Date now = new Date(); //获取当前时间对象Date specificDate = new Date(125,9,25);//2025年10月25日(年份从1900开始,月份0-11)//常用方法long time = now.getTime(); //获取毫秒数now.setTime(1632...

2025-10-23
Python基础知识学习笔记(基于其他语言基础)
前言个人情况: 本身会其他语言(java,c++),且曾经粗略学习过一段时间的python笔记目的: 记录python语言和其他语言的不同点(侧重语法),以及一些使用细节,稍微深入地学习python的使用 一:变量 python语句不用写分号,花括号,靠缩进来区分 python中定义变量的时候,不需要在变量前声明变量类型,而C语言和JAVA需要, 原因:python是一个动态语言,变量的类型取决于值的类型,也就是说值了类型决定了变量的类型如下图所示。因此定义变量时必须给变量赋值,因为只有这样,变量的类型才能确定。而JAVA和C是一个静态语言,一旦变量指定了类型,运行中就不能修改类型。 使用细节:变量不能以数字开头,大小写区分严格。 二:字符串 python的字符串可以用“”和‘’,这样可以代替转义字符来解决文本内含有“”或‘’的问题(当然个人更倾向于使用转义字符) 制表符摘要: 当类似路径的东西要大量添加制表符来表示正常的\,我们可以使用原始字符串来写: r(“abc\def\ghi”),原始字符串的转义字符将不再有效。 反斜杠写在行末有意义的,字符串还没结束 长字符...

2025-11-01
Java泛型详解
泛型概述 Java 泛型(Generics)是 JDK 5 中引入的一个新特性,提供了编译时类型安全检测机制,允许程序员在编译时检测到非法的类型 为什么需要泛型? 泛型可以统一数据类型<数据类型>没有泛型的时候,集合如何储存数据?如果我们没有给集合指定类型,默认认为所有的数据类型都是Object类型此时可以往集合添加任意的数据类型带来一个坏处,和多态的弊端一样,我们在获取数据的时候,无法使用他(子类)的特有行为 代码演示: 123456789101112131415161718//1.创建集合对象 ArrayList list = new ArrayList(); //2.添加数据 list.add(123); list.add("aaa"); list.add(new Student("zhangsan",123)); //3.遍历集合获取里面的每一个元素 Iterator it = list.iterator(); while(it.hasNext()){ Object ob...

2025-10-30
Java集合之List(常用方法及五种遍历方式)
Java List 集合详解List 接口概述List 是 Collection 体系中的重要分支,有序、可重复、有索引是它的三大特点。List 系列集合在 Collection 基础上增加了索引操作的相关方法,使得元素操作更加灵活。 List 特有方法核心方法列表 方法 说明 返回值 void add(int index, E element) 在指定位置插入元素 void E remove(int index) 删除指定索引处的元素 被删除的元素 E set(int index, E element) 修改指定索引处的元素 被修改的元素 E get(int index) 获取指定索引处的元素 指定元素 代码演示12345678910111213141516171819202122232425262728293031public class ListMethods { public static void main(String[] args) { // 1. 创建List集合 List&l...

2025-11-10
Java集合之Map(常用方法及遍历方式)
简述及特点Map(映射)是双列集合,用于存储键值对的集合。 键(Key):用于查找值的唯一标识。一个Map不能包含重复的键。 值(Value):通过键相关联的数据。值可以重复,一个值可以被映射到多个键上。特点: 键的唯一性:每个键最多只能映射到相同的值。 值得可重复性:不同的键可以映射到相同的值。 键和值都可以为:null(具体取决于实现类,如HashMap允许,而Hashtable不允许) 不保证顺序:大多数实现不保证元素的储存顺序,但也有保证顺序的实现。 常用方法 方法 作用 返回值 put(K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 V clear() 移除所有的键值对元素 void containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断结合是否为空 boolean size() 集合的长度,也就是集合中键值对的个...

2025-11-03
Java集合之Set、HashSet、LinkHashSet
前置知识: Java集合之Collection | 欢迎来到阿叶Ayeez的博客 Java集合之List(常用方法及五种遍历方式) | 欢迎来到阿叶Ayeez的博客 Set系列集合 无序:存取顺序不一致 不重复:可以去重 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素 Set集合的实现类 HashSet:无序、不重复、无索引 LinkedHashSet:有序、不重复、无索引 TreeSet:可排序、不重复、无索引 Set接口中的方法基本上与Collection的API一致Collection是单列集合的祖宗接口,他的功能是全部单列集合都可以继承使用的 方法 功能 public boolean add(E e) 把指定的对象添加到当前集合中 public void clear() 清空集合中所有的元素 public boolean remove(E e) 把给定的对象在当前集合中删除 public boolean contains(Object obj) 判断当前集合中是否包含给定对象...
评论
公告
关注一下我的各个社交媒体账号吧!!!↑↑↑
博主建了一个QQ群,快进来玩吧!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

博主建了一个QQ群,快进来玩吧!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓




