自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 字符串操作工具类(字符串增删改、拆分、合并)

【代码】字符串操作工具类(字符串增删改、拆分、合并)

2024-09-20 11:08:23 23

原创 字节操作工具类(字节数组和int、long、double、float等数字类型转换)

【代码】字节操作工具类(字节数组和int、long、double、float等数字类型转换)

2024-09-20 11:06:55 245

原创 数据类型转换工具类(字符串和int、double、long等数字类型互相转换)

【代码】数据类型转换工具类(字符串和int、double、long等数字类型互相转换)

2024-09-20 11:06:22 23

原创 Java :数组array和 Arrays

数组是 Java 中用于存储同类型数据的基本数据结构,而Arrays是一个工具类,提供了对数组的常用操作方法。理解这两者的区别和联系有助于在 Java 编程中更有效地管理和操作数据。

2024-09-20 10:57:03 173

原创 字节数组相关知识

ByteBuffer是处理原始字节数据的强大工具,提供了多种方法以支持各种数据类型的存取,为 Java 程序在高性能 I/O 操作中提供了灵活性和简便性。选择直接缓冲区或非直接缓冲区主要取决于应用的性能需求和内存管理策略。在需要高效的 I/O 操作时,直接缓冲区是更好的选择;而在其他常规内存操作时,非直接缓冲区可能更为简单和方便。大端(Big Endian):高位字节在前,低位字节在后,适合人类阅读顺序。小端(Little Endian):低位字节在前,高位字节在后,适合一些特定计算机架构。

2024-09-20 10:54:14 186

原创 Java时间类相关联系

【代码】Java时间类相关联系。

2024-09-19 16:53:05 34

原创 Java练习-----时间工具类(JDK8之后)

【代码】Java练习-----时间工具类(JD)

2024-09-19 15:40:44 175

原创 Java练习-----时间工具类(JDK8之前)

SimpleDateFormat简单日期格式化类:代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的形式。Calender类:calender是可变对象,一旦修改后其对象本身表示的时间将产生变化。

2024-09-19 11:11:32 146

原创 Java学习第八天

把成员变量设置成静态成员变量,并给其提供get、set方法。成员变量和局部变量区别常用APIString类定义的变量可用于存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接调用。字符串内容比较不适合用“==”,要用equals方法。

2024-09-18 14:17:12 308

原创 Java学习第八天

垃圾回收机制:当堆内存中的类对象或者数组对象,没有被任何变量引用或者指向时候,就会被判定为内存中的“垃圾”。子类通过this(...)去调用本类的其他构造器,本类其他构造器会通过super去手动调用父类的构造器,最终还是会调用父类构造器的。因为子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。子类中的所有的构造器默认都会先访问父类中无参的构造器,再执行自己。子类初始化之前,一定要调用父类构造器先完成父类数据空间的初始化。

2024-09-10 10:29:27 219

原创 Java学习第七天

成员方法分类:静态成员方法(有static修饰 属于类)建议用类名访问,也可以用对象访问实例成员方法(无static修饰 属于对象)只能用对象出发访问使用static来定义一些工具类工具类直接使用类名.方法调用即可,将构造器私有化,不要对外产生对象。

2024-09-04 17:02:19 426

原创 win10 +git配置+学习笔记

4.合并分支(首先要切换到你需要合并到的分支上来,例如分支1想要合并分支2,必须先切换到分支1,然后执行merge命令)然后新建一个文件夹,在目录中右键点击git bash就打开了命令行。每个开发人员都是建立新分支在新分支上进行修改然后合并到主分支上面。初始化仓库(在现有目录中初始化 Git 仓库)配置完之后可以查看绑定信息。

2024-09-03 16:30:59 396

原创 Java学习第六天

静态成员变量(有static修饰,属于类,内存中加载一次):如在线人数信息等需要被共享的信息,可以被共享访问。实例成员变量(无static修饰,存在于每个对象中):常表示姓名name、年龄age等属于每个对象的信息。static:是静态的意思,可以修饰成员变量,表示该成员变量在内存中只存储一份,可以被共享访问。静态成员变量属于内,与类一同加载,保存到堆内存,类保存在方法区,方法在栈内存。static修饰成员变量的内存原理。

2024-09-02 17:11:07 191

原创 Java学习第五天(续)

方法重载作用:可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。引用类型的参数传递(本质也是值传递,注意区分不同点,因为引用类型的值是地址,相当于传递了地址)方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。方法重载:同一类中,名称相同但形参列表不同,那么这些方法就是重载方法。主要分析返回值和形参,只要确定这两个就可以定义方法。方法调用完之后就从栈内存清除走了;return关键字单独使用。值传递:不改变实参的值。

2024-09-02 09:42:28 142

原创 Java学习第五天

通过这个比较,我们可以清楚地看到两段代码的区别在于对数组引用的操作不同,从而导致了不同的结果。注意左边和右边的区别,一个是改变数组的值,另一个是改变地址相当于,右侧的局部变量被销毁了。注意:数组变量名中存储的是数组在内存中的地址,数组是引用类型。new出来的都是在堆内存中的,方法都在栈内存中。数组适合做一批同类型数据的存储。1.越界异常(超出最大索引)2.空指针异常(null)

2024-08-30 15:17:21 331

原创 Java学习第四天

if分支结构(区间匹配)switch分支(值匹配)

2024-08-29 15:03:40 151

原创 Java学习第三天

强制类型转换可能造成数据丢失或者溢出;浮点型强转成整型,会丢失小数部分,保留整数部分返回。类型范围小的可以直接转换给类型范围大的变量;例如int类型可以直接赋值为long型。总体三部分内容:数据类型转换、运算符使用、调用Java提供的程序。char字符型在计算机底层是一个数字 可以自动转换成int。加号符+作连接符(能算则算,不能算就连在一起)大范围变量赋值给小范围变量时需要强制类型转换。注意a*1.0/2 就可以变成小数了。赋值运算符:(基本赋值和扩展赋值)2.表达式的自动类型转换。

2024-08-28 17:03:10 115

原创 Java学习第二天

Java程序开发三步骤:编写代码(后缀为.java文件,文件命名规则:驼峰模式) 编译代码(使用javac编译,编译完之后生成一个.class文件) 运行代码(使用java运行class文件)Java代码编写要求:1文件名称的后缀必须是java结尾;或者新建一个模块将别人src文件夹下的代码copy到新建的模块中的src文件夹中(建议使用这种)注意字符:必须使用单引号,有且仅能有一个字符(\n 换行符 \t 空格)删除模块(一般先从idea中删除,然后再从磁盘文件夹中删除)

2024-08-27 16:15:48 152

原创 接口、多实现、多继承

实现类是特殊的子类;父类相当于亲爹,接口相当于干爹。接口和接口的关系:多继承。类和接口的关系:多实现。类和类的关系:单继承。

2024-08-27 13:22:44 73

原创 面向对象特征---多态

概念:同类型的对象,执行同一个行为,会表现出不同的行为特征。父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类的构造器;

2024-08-27 13:22:08 64

原创 内部类java

成员内部类中可以直接访问外部类的静态成员,因为外部类的静态成员只有一份,可以被共享访问;成员内部类的实例方法中可以直接访问外部类的实例成员,因为必须先有外部类对象,才能用成员的内部类对象,所以可以直接访问外部类对象的实例成员。1.当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构可以选择使用内部类来设计。内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(寄主)。

2024-08-27 13:21:41 441

原创 Java学习第一天

Java是一种高级编程语言;Java什么都能做但主要用于企业互联网系统的开发;1.jdk安装(Java Development Kit ,Java开发工具包,必须安装jdk才能使用java)首先将自动配置的java环境变量删除然后手动配置(因为jdk老版本没有自动配置,而新版本自动配置了)最好上移到第一位,将前面的路径用%JAVA_HOME%替代,便于更换。(我的电脑-属性-高级系统设置-高级-环境变量)JavaSE(标准版)、JavaEE(企业版)javac----编译工具。java----执行工具。

2024-08-26 22:25:52 363

原创 jdk与java版本对应

jdk对应版本

2024-08-26 10:28:01 262

原创 算法训练营第六十一天||一刷总结

一开始,我对算法题目感到畏惧,觉得它们晦涩难懂,离我的实际编程应用很远。

2023-08-07 21:54:42 328

原创 算法训练营第六十天||5.柱状图中最大矩形

唯一比较难理解的就是矩形的高度,不太好理解,不太明白为啥是height[mid]正好是栈顶元素的那个值。本题和接雨水正好是相反的,寻找左右两边第一个元素比当前元素小的元素。

2023-08-04 16:17:46 88

原创 算法训练营第五十九天||● 503.下一个更大元素II ● 42. 接雨水

例如:[2,1,5,6]->[2,1,5,6,2,1,5,6]这道题面试经常考,经典题目,单调栈的经典题,需要熟练掌握。2.采用取模的方式i%nums.size()凡是涉及到环形数组,都可以有两个思路。● 503.下一个更大元素II。看了思路讲解能自己写出代码。1.扩展数组长度二倍。

2023-08-04 14:49:45 88

原创 算法训练营第五十八天||● 739. 每日温度 ● 496.下一个更大元素 I

单调栈,适合做需要找到比当前数组大的元素或者小的元素的位置的题目。这道题就是map加上单调栈解决,具体代码如下。注意栈中存放的是元素的下标,不是元素值。主要分情况讨论,先考虑简单情况。

2023-08-03 21:36:05 68

原创 算法训练营第五十七天||647.回文子串、516.最长回文子序列、动态规划总结

其他情况dp[i][j]初始为0就行,这样递推公式:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);如果s[i]与s[j]不相同,说明s[i]和s[j]的同时加入 并不能增加[i,j]区间回文子序列的长度,那么分别加入s[i]、s[j]看看哪一个可以组成最长的回文子序列。那么dp[i][j]一定是取最大的,即:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。

2023-08-01 18:58:45 189

原创 算法训练营第五十六天||● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

那最后当然是取最小值,所以当word1[i - 1] 与 word2[j - 1]不相同的时候,递推公式:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1});因为 dp[i][j - 1] + 1 = dp[i - 1][j - 1] + 2,所以递推公式可简化为:dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);这里dp数组的定义有点点绕,大家要撸清思路。

2023-08-01 18:23:42 375

原创 算法训练营第五十五天||● 392.判断子序列 ● 115.不同的子序列

这道题不理解递推公式,还需要再看 这几天太忙了 没时间 先简单过一遍吧。这道题能理解,慢慢涉及到一个字符串中删除元素。● 392.判断子序列。115.不同的子序列。

2023-08-01 17:50:58 43

原创 算法训练营第五十三天||● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

如果text1[i - 1] 与 text2[j - 1]不相同,那就看看text1[0, i - 2]与text2[0, j - 1]的最长公共子序列 和 text1[0, i - 1]与text2[0, j - 2]的最长公共子序列,取最大的。如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] = dp[i - 1][j - 1] + 1;即:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);

2023-07-30 09:06:25 225

原创 智能指针(保证资源能得到自动释放)

线程A和线程B访问一个共享的对象,如果线程A正在析构这个对象的时候,线程B又要调用该共享对象的成员方法,此时可能线程A已经把对象析构完了,线程B再去访问该对象,就会发生不可预期的错误,此时用强弱智能指针配合使用,lock方法来判断是否已经析构。unique_ptr有一点和scoped_ptr做的一样,就是去掉了拷贝构造函数和operator=赋值重载函数,禁止用户对unique_ptr进行显示的拷贝构造和赋值,防止智能指针浅拷贝问题的发生。利用栈上的对象出作用域自动析构,释放资源来保证资源的自动释放。

2023-07-28 15:11:04 116

原创 算法训练营第五十二天||● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。即当A[i - 1] 和B[j - 1]相等的时候,dp[i][j] = dp[i - 1][j - 1] + 1;根据dp[i][j]的定义,dp[i][j]的状态只能由dp[i - 1][j - 1]推导出来。其实dp[i][j]的定义也就决定着,我们在遍历dp[i][j]的时候i 和 j都要从1开始。位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。

2023-07-28 10:48:57 208

原创 c++高级 对象优化注意事项

对象优化

2023-07-27 16:15:58 35

原创 算法训练营第五十一天||309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

这道题主要就是搞懂dp数组含义以及状态之间的转换,没看答案能自己做出来。这道题和买卖股票二一样,无非就是再递推公式中减去fee。股票问题 最难的就是搞懂dp数组含义和递推公式。714.买卖股票的最佳时机含手续费。309.最佳买卖股票时机含冷冻期。

2023-07-27 09:30:35 92

原创 算法训练营第五十天||● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV

这道题是上一道题的拓展,需要循环来控制 遍历k。这道题主要就是dp的维度更大了。

2023-07-26 09:35:20 28

原创 算法训练营第四十九天||● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

是由前一天持有股票,或者前一天不持有股票今天买入的最大值组成 ,此时前一天不持有股票手中现金不再是0而是dp[i-1][1]dp[0][0]:第0天就持有股票,说明它第0天买入了股票 此时手中现金为 -peices[0]dp[i][0]表示第i天持有股票手中的金额:它可以是当天买入的也可以是之前买入的。dp[i][1]表示第i天不持有股票手中的金额:可以是当天卖出的也可以是之前卖出的。dp[0][1]:第0天不持有股票,说明它既没有买入也没有卖出 手中现金为0。dp[i][1]与上一道题完全相同。

2023-07-25 09:17:54 97

原创 算法训练营第四十八天||● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

偷前一个dp[i-1] 不偷前一个dp[i-2]+nums[i]dp数组表示 考虑nums数组中下标为i时可以偷的最大金额。递推公式:dp[i]分为偷前一个和不偷前一个。二叉树中递归三部曲和动态规划的五部曲结合。环形数组转换成两个线性数组。考虑首元素 不考虑尾元素。考虑尾元素,不考虑首元素。这个题难,根本想不到。

2023-07-24 11:54:54 159

原创 算法训练营第四十六天||● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

问能否能装满背包(或者最多装多少):dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);问背包装满最大价值:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);问装满背包所有物品的最小个数:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);01背包:一维dp数组01背包只能先遍历物品再遍历背包容量,且第二层for循环是从大到小遍历。多重背包和01背包是非常像的, 为什么和01背包像呢?

2023-07-22 12:04:52 70

原创 算法训练营第四十五天||● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数

这道题和上一道一摸一样 物品为1 4 9 16 25 等等 对应的价值重量也是1 4 9 16 25。爬楼梯相当于完全背包:物品:每次可以爬几个台阶 背包:跑到楼顶。求最少的硬币组合 min 之前有道题求最大max。背包容量为n 完全背包问题。

2023-07-21 15:14:15 52

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除