- 博客(158)
- 收藏
- 关注
原创 javaSE.静态变量和静态方法
我们通过使用static关键字来声明一个变量或一个方法为静态的,一旦被声明为静态,那么通过这个类创建的所有对象,操作的都是同一个目标,也就是说,对象再多,也只有这一个静态的变量或方法。实际上是将.class 文件丢给JVM去执行的,而每一个.class 文件其实就是我们编写的一个类,我们在java中使用一个类前,所有被标记为静态的内容,会在类刚加载的时候就分配,而不是在对象创建的时候分配,所以说静态内容一定会在。同样的,在静态方法中,无法使用this关键字,因为this关键字代表的是当前的对象本身。
2025-01-24 04:28:29 83
原创 javaSE.类与对象
/ 这个是引用的意思,并不是赋值p2.name = "小明";// 小明// true : 说明是一样的,引用p1.name = "小红";// 小红。
2025-01-24 01:03:29 43
原创 javaSE.布尔类型
比较特殊的类型:存放状态布尔类型的变量常用作 流程控制判断语句,布尔类型占据的空间大小 并未明确定义,而是根据不同的JVM会有不同的实现。
2025-01-22 18:26:50 83
原创 javaSE.浮点类型
小数在计算机如何存储呢?float 单精度实数的存储结构:S(31) E(阶码,30~23,共8位) M(尾数,22~0,共23位)double 双精度的存储结构:S(63) E(阶码,52~62,共11位) M(尾数,51~0,共52位)根据,任意一个二进制浮点数V可以表示成下面的形式:①(-1)^S表示符号位,当S = 0,V为整数,当S = 1,V为负数;②M表示有效数字,大于等于1,小于2,但整数部分的1不变,因此可以省略。
2025-01-22 18:00:23 210
原创 javaSE. 二进制表示
一次编写, 到处运行(跨平台)既是编译型语言又是解释型语言。是一种面向对象语言。一个位是一个bit,8个bit称为一个字节,16bit为一个字,32个bit为双字,64bit为四字。一般用字节来表示数据大小。1111 1111 一字节。
2025-01-22 15:04:49 107
原创 牛客周赛round77
例如12个数, 那么 12%9 = 3;那么全部分1分,剩余3份,所以6个一分,3个2分。只可能是1,和2的,计算个数可以看出来是否符合。符合就能排出来至少一种。数学计算:取余,剩下的是多出来的,那么只会有这么多是多一个的。否则,23456789 1 就接不上1了。最大,最小个数至多相差1。
2025-01-21 22:31:22 264
原创 数位dp-acwing
二叉树: 左子树情况, 右子树情况(看是否能进入,就是abs(x-last) >= 2才能进,不能就break)windy : 2 5 1 类似这样的数 第二位与第一位相差3 >= 2。不能有前导0,初始化的时候需要有前导0,因为除了最高位数其他位数可以。遍历一遍,位数 + 最高位1-9。1. 位数跟 n 同位数 的。2. 位数< n 数字的位数的。
2024-12-27 20:19:59 303
原创 prim-acwing
dt[b] = 5. <5,b> 距离放first 小根堆自动按距离排序。堆中存的是dt 的更新信息,要的是每次最小的。感觉跟最短路径是一样的,只是多了个。
2024-12-24 10:12:16 357
原创 数位dp-acwing(数字游戏)
对于左分支,随便弄,只要后面的大于前面的就行(不会超过n的值)=>这个东西提前算好了,就是f[i][j] i位数,最高位是j,这种情况下满足性质有几位。比最高位小的, 左分支讨论,等于最高位的进入右分支,(同时进入右分支有条件,就是当前位最大值last <= x(下一位值,此高位).如果能枚举完,还要加上特殊情况(ans ++);前缀和思想: dp(m) - dp(n-1)符合条件进入右分支。
2024-12-22 16:25:24 273
原创 数位dp—acwing
所以此时 组合数求解之后直接 break, f[n][k] + f[n][k-1] 如果an位填1,则f[n][k-1] ,不填,则f[n][k]如果 an = 1, 那么需要继续枚举下去,因为后面不能随便填了,此处填0 或者填1,加上0的情况之后继续枚举下去。如果an > 1 那么代表, 将要推理出来的数, an 位可以填 0 或 1, 并且随便填都不会超过 n值。如果是1,填0的情况加上后,处理填1的情况(last++),继续往下枚举。总之,结束条件是,k枚举完了,或者,当前位>1可以随便填。
2024-12-22 13:48:46 390
原创 滑动窗口(定长窗口)
通过hash 映射有哪些字符,有几个。通过两个hash 比较大小判断是否为有效字符,如果定长区间内全为有效字符,存 l左端点。共0 - 数组string串长度-1 次,作为起点增量len(string长度)跳跃式开始枚举。count 维护窗口有效“有效字符“个数,用substr 截取len(string长度)异位次,就是通过排序之后可以跟哪个单词一样,例如 hello 跟 lleho。这是定长窗口, 窗口维护在p的大小。定长窗口,窗口长度,为数组长度*每个string长度。
2024-12-17 18:59:19 396
原创 滑动窗口(非定长)
转换为,窗口最大长度,同时窗口target == 当前窗口值, 如果大于target 进行左端点退窗。cnt 维护窗口和,maxlen维护窗口最大长度, maxlen = -1 是为了后面的特判,无法取得target值情况。使用maxlen来维护窗口最长长度,len维护当前窗口长度,count 来维护改变状态次数。kind维护窗口种数, maxlen 维护窗口最大长度。用hash哈希数组(哈希表)维护窗口无重复,用maxlen维护窗口长度最大值(答案)。注意特判,x>sum 的情况,无论如何都无法减去。
2024-12-17 14:31:33 237
原创 区间和并-acwing-4412构造数组
对于一个区间, 除了那个区间的第一个位置,其他都通过差分标记数组,对应+1,使之不为0。除了b1 对应的0, 其他剩余的0都记入n,得数 ans=2^n。
2024-12-15 18:10:34 214
原创 区间和并-
max(st,a[i].second) 是因为要取最右边的,你不知道当前区间右端点是否都比前面的右端点都大,因为排序的是左端点。max(st,a[i].second) i == a.size()-1, 第二个需要考虑的边界,是否到一天结束。不要忘了sort 左端点,还有处理边界细节,开始0到最前面的左端点不算最长无人持续时间。开头st==00:00:00 到第一个区间左端点,第一个需要考虑的边界。string 存储端点。主要是边界上的考虑。
2024-12-15 12:11:54 485
原创 区间dp—acwing
正着递推不行,正着递推属于递归了。因为不知道1-n中间任何两堆合并的dp值,所以需要从n-n开始往长度高来推。dfs需要两个信息,就是区间信息(i,j)长度+左端点=>自然而然会获取右端点。
2024-12-15 10:46:19 372
原创 区间和并—acwing
是否合并区间通过,该区间,与上一个区间ed(最右边端点)比较。右边则,res++;遍历区间,考虑边界情况。每访问一个区间,都更新为最右边的那个端点(max)PII存储区间,排序左端点。first存左端点。
2024-12-13 18:04:34 275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人