- 博客(456)
- 收藏
- 关注
原创 编写Java单元测试:JUnit框架和Mockito框架快速入门,看这篇就够了!!!
Mockito框架是一个用于Java的开源框架,用于进行单元测试时的模拟对象创建和行为验证。Mockito框架可以帮助开发人员创建测试时需要的模拟对象,以便在测试过程中模拟或替代真实对象的行为。JUnit是一个Java编程语言的单元测试框架。它提供了编写和运行单元测试的工具和框架。JUnit的设计目标是简单易用,以支持测试驱动开发(TDD)的开发过程。JUnit提供了一组注解和断言方法,用于编写测试用例和验证预期结果。它也提供了测试运行器(TestRunner)来执行测试,并生成测试报告。
2024-10-14 00:07:19 980 1
原创 Windows 10专业版上安装 OpenJDK 1.8.0_222教程(Java8环境安装)
在Windows 10专业版上安装 OpenJDK 1.8.0_222 是一个简单的过程。
2024-08-15 14:59:22 3211
原创 React入门篇:简单介绍,开发环境搭建,JSX基础,基础事件绑定,条件渲染,useState基础使用,修改状态的规则
React由Meta公司研发,是一个用于构建Web和原生交互界面的库。概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写UI模版的方式。
2024-08-09 17:25:10 1134
原创 力扣:3132. 找出与数组相加的整数 II(Java,枚举)
移除 nums1 中下标为 [0,4] 的两个元素,并且每个元素与 -2 相加后,nums1 变为 [18,14,10] ,与 nums2 相等。移除 nums1 中下标为 [0,3] 的两个元素,并且每个元素与 2 相加后,nums1 变为 [7,7] ,与 nums2 相等。执行上述操作后,nums1 和 nums2 相等。输入:nums1 = [4,20,16,12,8], nums2 = [14,18,10]输入:nums1 = [3,5,5,3], nums2 = [7,7]
2024-08-09 15:20:46 371
原创 解题思考:为什么Java中使用Arrays.stream()创建流处理数组通常会增加开销,提高时间复杂度?
在流中,编译器不能像对待简单的 for 循环那样进行某些特定的优化,例如循环展开(loop unrolling)或向量化(vectorization)。因此,对于一些简单的操作,手动实现的循环可能会比流更高效。虽然这种惰性求值机制可以带来某些情况下的性能优化,但它也意味着流的处理过程中可能需要进行多次遍历,增加了开销。总的来说,尽管流提供了一种优雅、简洁的方式来处理集合,但在性能敏感的场合下,尤其是处理简单的数组操作时,传统的循环可能会更高效。时,使用传统遍历会比创建流处理数组的时间复杂度更低。
2024-08-08 10:42:12 435
原创 力扣:LCR 021. 删除链表的倒数第 N 个结点(Java)
给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1], n = 1。输出:[1,2,3,5]
2024-08-07 11:14:02 324
原创 24. 两两交换链表中的节点(Java)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。输入:head = [1,2,3,4]输出:[2,1,4,3]
2024-08-06 16:40:45 276
原创 力扣:100379. 新增道路查询后的最短距离 I(Java,BFS)
返回一个数组 answer,对于范围 [0, queries.length - 1] 中的每个 i,answer[i] 是处理完前 i + 1 个查询后,从城市 0 到城市 n - 1 的最短路径的长度。输入: n = 5, queries = [[2, 4], [0, 2], [0, 4]]新增一条从 2 到 4 的道路后,从 0 到 4 的最短路径长度为 3。新增一条从 0 到 2 的道路后,从 0 到 4 的最短路径长度为 2。新增一条从 0 到 4 的道路后,从 0 到 4 的最短路径长度为 1。
2024-08-04 21:56:06 342 1
原创 力扣:3128. 直角三角形(Java)
如果 grid 中 3 个元素满足:一个元素与另一个元素在 同一行,同时与第三个元素在 同一列 ,那么这 3 个元素称为一个 直角三角形。这 3 个元素互相之间不需要相邻。请你返回使用 grid 中的 3 个元素可以构建的 直角三角形 数目,且满足 3 个元素值 都 为 1。输入:grid = [[0,1,0],[0,1,1],[0,1,0]]给你一个二维 boolean 矩阵 grid。有 2 个直角三角形。
2024-08-02 16:43:34 482
原创 力扣:2961. 双模幂运算(Java,快速幂取模)
给你一个下标从 0 开始的二维数组 variables ,其中 variables[i] = [ai, bi, ci, mi],以及一个整数 target。输入:variables = [[2,3,3,10],[3,3,3,1],[6,1,1,4]], target = 2。输入:variables = [[39,3,1000,1000]], target = 17。
2024-07-30 15:48:03 349
原创 力扣:LCR 024. 反转链表(Java)
给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。输入:head = [1,2,3,4,5]输入:head = [1,2]输出:[5,4,3,2,1]
2024-07-01 20:24:25 356
原创 力扣:3195. 包含所有 1 的最小矩形面积 I(Java)
给你一个二维 二进制 数组 grid。请你找出一个边在水平方向和竖直方向上、面积 最小 的矩形,并且满足 grid 中所有的 1 都在矩形的内部。这个最小矩形的高度为 2,宽度为 3,因此面积为 2 * 3 = 6。这个最小矩形的高度和宽度都是 1,因此面积为 1 * 1 = 1。输入: grid = [[0,1,0],[1,0,1]]输入: grid = [[0,0],[1,0]]返回这个矩形可能的 最小 面积。
2024-06-30 10:24:03 285
原创 力扣:707. 设计链表(Java)
单链表中的节点应该具备两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。// 链表变为 1->2->3。// 现在,链表变为 1->3。你可以选择使用单链表或者双链表,设计并实现自己的链表。
2024-06-30 01:02:13 424
原创 力扣:203. 移除链表元素(Java)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6。输入:head = [], val = 1。输出:[1,2,3,4,5]
2024-06-27 20:43:55 335
原创 力扣:59. 螺旋矩阵 II(Java,模拟)
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。输出:[[1,2,3],[8,9,4],[7,6,5]]
2024-06-26 23:01:43 603
原创 力扣:3040. 相同分数的最大操作数目 II(Java,动态规划)
在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少次操作。选择 nums 中第一个和最后一个元素并且删除它们。请你返回按照上述要求 最多 可以进行的操作次数。选择 nums 中最前面两个元素并且删除它们。输入:nums = [3,2,1,2,3,4]选择 nums 中最后两个元素并且删除它们。输入:nums = [3,2,6,1,4]一次操作的 分数 是被删除元素的和。
2024-06-08 16:46:45 392
原创 力扣:209. 长度最小的子数组(Java,双指针,滑动窗口)
numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。输入:target = 7, nums = [2,3,1,2,4,3]给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。
2024-06-07 00:00:46 299
原创 力扣:376. 摆动序列(Java,贪心)
相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。输入:nums = [1,17,5,10,13,15,10,5,16,8]
2024-05-30 10:31:09 224
原创 力扣:455. 分发饼干(Java,贪心)
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。但是,每个孩子最多只能给一块饼干。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。输入: g = [1,2,3], s = [1,1]输入: g = [1,2], s = [1,2,3]
2024-05-29 20:05:54 306
原创 力扣:121. 买卖股票的最佳时机(Java,动态规划)
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]
2024-05-26 14:37:55 323
原创 力扣:LCR 038. 每日温度(Java,单调栈)
请根据每日 气温 列表 temperatures ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。输入: temperatures = [73,74,75,71,69,72,76,73]输入: temperatures = [30,40,50,60]输入: temperatures = [30,60,90]输出: [1,1,4,2,1,1,0,0]输出: [1,1,1,0]输出: [1,1,0]
2024-05-24 10:38:56 234
原创 力扣:48. 旋转图像(Java)
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
2024-05-12 12:14:28 291
原创 力扣:204. 计数质数(Java)
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7。给定整数 n ,返回 所有小于非负整数 n 的质数的数量。
2024-05-10 08:51:51 233 1
原创 Java集合篇:ArrayList(源码分析,实现原理,扩容机制),散列表(哈希冲突,拉链法),HashMap(实现原理,jdk1.7和jdk1.8区别,put方法,扩容机制,寻址算法,多线程死循环)
①散列表(Hash Table)又名哈希表/Hash表②根据键(Key)直接访问在内存存储位置值(Value)的数据结构③由数组演化而来的,利用了数组支持按照下标进行随机访问数据。
2024-05-09 14:35:57 1457 1
原创 力扣:31. 下一个排列(Java,双指针)
如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[1,3,2]
2024-05-09 13:34:38 164
原创 力扣:268. 丢失的数字(Java)
解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。输入:nums = [3,0,1]输入:nums = [0,1]
2024-05-08 12:07:31 338
原创 力扣:300. 最长递增子序列(Java,动态规划)
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。解释:最长递增子序列是 [2,3,7,101],因此长度为 4。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。输入:nums = [10,9,2,5,3,7,101,18]输入:nums = [0,1,0,3,2,3]
2024-05-07 14:33:09 357
原创 力扣:416. 分割等和子集(Java,动态规划:01背包问题)
给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。解释:数组可以分割成 [1, 5, 5] 和 [11]。解释:数组不能分割成两个元素和相等的子集。输入:nums = [1,5,11,5]输入:nums = [1,2,3,5]
2024-05-06 14:29:16 359 2
原创 解决:mybatisplus分页查询失效,总是查询到所有数据
具体来说,PaginationInterceptor 在执行 SQL 之前会拦截 Executor 对象的 query 方法,在其中动态修改 SQL 语句,加入类似 LIMIT offset, size 的分页逻辑,其中 offset 表示偏移量,size 表示每页数据条数。一旦拦截器生效,所有的查询操作都会自动加入分页逻辑,从而实现了全局的分页功能,而无需手动在每个查询方法中编写分页逻辑。其中,offset 表示偏移量(即跳过的行数),size 表示每页数据条数。
2024-05-05 20:37:37 1494
原创 力扣:100284. 有效单词(Java)
给你一个字符串 word。如果 word 是一个有效单词,则返回 true ,否则返回 false。‘a’、‘e’、‘i’、‘o’、‘u’ 及其大写形式都属于 元音字母。由数字 0-9 和英文大小写字母组成。(不必包含所有这类字符。英文中的 辅音字母 是指那些除元音字母之外的字母。至少 包含一个 元音字母。至少 包含一个 辅音字母。至少 包含 3 个字符。这个单词满足所有条件。
2024-05-05 13:59:56 307 1
原创 解决:服务注册到nacos出现报错:exception.NacosException:Client not connected, current status:STARTING
2.Raft协议服务(端口9849):Nacos使用Raft一致性算法来实现分布式一致性,确保集群中各个节点的状态一致性。Raft协议服务就是用于在Nacos集群中进行节点间通信和协调的服务。1.HTTPS服务(端口9848):Nacos支持通过HTTPS协议提供服务,以确保通信的安全性。HTTPS服务通常用于与Nacos进行安全的通信,如服务注册、服务发现等。在Nacos中,默认情况下,端口号9848用于Nacos的HTTPS服务,而端口号9849用于Nacos的Raft协议服务。
2024-05-04 21:43:38 2461
原创 node-sass模块与当前环境不兼容Run `npm rebuild node-sass` to download the binding for your current environment.
这个错误通常是由于 node-sass 模块与当前环境不兼容或者损坏导致的。重新构建 node-sass 模块来解决这个问题。这将重新构建 node-sass 模块,并下载适用于当前环境的绑定文件。
2024-05-04 16:50:39 744
原创 力扣:198.打家劫舍(Java,动态规划)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。
2024-05-04 11:24:22 331
原创 力扣:289. 生命游戏(Java)
每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。2.如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;1.如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;3.如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;4.如果死细胞周围正好有三个活细胞,则该位置死细胞复活;
2024-05-03 10:31:40 304
原创 力扣:1979. 找出数组的最大公约数(Java)
给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数。两个数的 最大公约数 是能够被两个数整除的最大正整数。2 和 10 的最大公约数是 2。nums 中最大的数是 10。nums 中最小的数是 2。
2024-05-02 15:45:40 388 1
原创 Vue入门篇:样式冲突scoped,data函数,组件通信,prop & data单向数据流,打包发布
说明:当打包构建应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由。:默认情况下,需要放到服务器根目录打开,如果希望双击运行,需要配置publicPath配成相对路径。单向数据流:父级prop的数据更新,会向下流动,影响子组件。每次创建新的组件实例,都会新执行一次data函数,得到一个新对象。, dist中的文件就是打包后的文件,只需要放到服务器中即可。:vue脚手架工具已经提供了打包命令,直接使用即可。:默认组件中的样式会作用到全局。
2024-05-01 19:06:13 523
原创 力扣:100. 相同的树(Java)
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
2024-05-01 14:14:27 373 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人