- 博客(27)
- 收藏
- 关注
原创 解决Java调用通义接口出现依赖爆红与API-key找不到(日常小记)
(emm就很无语,在不是问以前实习项目中的大哥,真的不知道会这样解决)idea那个终端环境和cmd环境不是实时同步的,需重启。与slf4j这个包冲突,把它排除掉!
2024-09-30 09:37:52
354
1
原创 【设计模式之原型模式——矩形原型】
相⽐于直接实例化对象,通过原型模式复制对象可以减少资源消耗,提⾼性能,尤其在对象的创建过程复杂或对象 的创建代价较⼤的情况下。当需要频繁创建相似对象、并且可以通过克隆避免重复初始化⼯作的场景时可以考虑使 ⽤原型模式,在克隆对象的时候还可以动态地添加或删除原型对象的属性,创造出相似但不完全相同的对象,提⾼了灵活性。设计师在工作时可能需要频繁地创建相似的矩形,而这些矩形的基本属性是相同的(颜色、宽度、高度),为了提高设计师的工作效率,请你使用原型模式设计一个矩形对象的原型。具体原型类去实现接口,重写克隆⽅法。
2024-08-27 16:01:53
651
1
原创 【设计模式之建造者模式——自行车加工】
具体的构建过程:由实现了这些接⼝的具体建造者类来完成。同时有⼀个指导者类负责协调建造者的⼯作,按照⼀定的顺序或逻辑来执⾏构建步骤,最终⽣成产品。
2024-08-26 16:33:45
580
原创 [设计模式之抽象工厂模式—— 家具工厂]
小明家新开了两个工厂用来生产家具,一个生产现代风格的沙发和椅子,一个生产古典风格的沙发和椅子,现在工厂收到了一笔订单,请你帮他设计一个系统,描述订单需要生产家具的信息。接下来的 N 行,每行输入一个字符串,字符串表示家具的类型。家具类型分为 “modern” 和 “classical” 两种。输入的第一行是一个整数 N(1 ≤ N ≤ 100),表示订单的数量。对于每笔订单,输出字符串表示该订单需要生产家具的信息。
2024-08-23 16:22:13
348
原创 【设计模式之工厂方法模式——积木工厂】
积木类型分为 “Circle” 和 “Square” 两种。整数表示该积木生产的数量。小明家有两个工厂,一个用于生产圆形积木,一个用于生产方形积木,请你帮他。输入的第一行是一个整数 N(1 ≤ N ≤ 100),表示生产的次数。对于每个积木,输出一行字符串表示该积木的信息。
2024-08-13 09:27:51
272
原创 【设计模式之单例模式——小明的购物车】
输入包含若干行,每行包含两部分信息,分别是商品名称和购买数量。商品名称和购买数量之间用空格隔开。输出包含小明购物车中的所有商品及其购买数量。每行输出一种商品的信息,格式为 “小明去了一家大型商场,拿到了一个购物车,并开始购物。题目来自carl哥的"卡码网"
2024-08-02 16:49:05
258
原创 【数组篇-58.区间和 | 44.开发商购买土地(待做)】
第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。输出每个指定区间内元素的总和。
2024-07-31 15:05:24
60
原创 【leetcode59.螺旋矩阵2 | leetcode54.螺旋矩阵 | LCR146.螺旋遍历二维数组】
螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输入:array = [[1,2,3],[8,9,4],[7,6,5]]输出:[[1,2,3],[8,9,4],[7,6,5]]输出:[1,2,3,6,9,8,7,4,5]输出:[1,2,3,4,5,6,7,8,9]给定一个二维数组 array,请。
2024-07-30 15:23:09
524
原创 【滑动窗口专题-leetcode209.长度最小的子数组 | 904.水果成篮 | 76.最小覆盖子串(待做?)】
农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中fruits[i] 是第 i 棵树上的水果种类。只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。<2>:你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘,一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。
2024-07-29 15:18:29
808
原创 【双指针专题-leetcode26.删除有序数组中的重复项 | leetcode283.移动零 | leetcode977.有序数组的平方】
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。输入:nums = [0,0,1,1,1,2,2,3,3,4]解释:平方后,数组变为 [16,1,0,9,100]输出:5, nums = [0,1,2,3,4]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]输入: nums = [0,1,0,3,12]排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]
2024-07-26 15:09:23
262
原创 【二分查找-leetcode69.x的平方根 | 367.有效的完全平方数】
注意:如果 mid * mid 的结果超出了 int 类型的范围(即大于 Integer.MAX_VALUE),就会发生溢出,结果会变成负数或其他不正确的值,所以加个long。注意二分的运用,平方根是目标值,那肯定要划出一个范围,大于等于0,则0为下界,找x的平方根,那x就为上界,符合二分要求。解释:返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。, 由于返回类型是整数,小数部分将被舍去。解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。
2024-07-24 09:17:03
258
原创 【二分查找-leetcode34.在排序数组中查找元素的第一个和最后一个位置】
题目:给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。先用二分找出目标值,在划分左右边界(滑动来慢慢确定位置(索引))如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。输出:[-1,-1]输出:[-1,-1]
2024-07-23 23:25:49
235
1
原创 解决在IDEA上git提交代码时出现commit and push checks failed(git小记)
然后我们查看这些警告是一些需要待处理的规范以及建议问题等,我们如何取掉这个checks呢?当我们拉取远程仓库最新代码后,然后再提交我们更改的代码时,出现。如下图:取消这个分析代码后,可正常提交!
2024-02-19 15:44:12
4102
1
原创 git拉代码时出现输入“token”的页面 与 用git如何保存不想提交的代码(git小记)
git拉代码时出现输入“token”的页面 与 用git如何保存不想提交的代码(git小记)
2024-01-18 19:45:00
3251
6
原创 vue项目启动报JavaScript heap out of memory 错误 和 后端项目编译正常,但项目仍有报错问题!
vue项目启动报JavaScript heap out of memory 错误 和 后端项目编译正常,但项目仍有报错问题!
2024-01-17 19:29:04
1275
1
原创 编译出错“.....ntrospect.PropertyInfo”和溢出问题“OutOfMemoryError”(bug小记)
maven编译出错“.....ntrospect.PropertyInfo”和溢出问题“OutOfMemoryError”(bug小记)
2024-01-12 16:32:45
606
1
原创 【 LeetCode104.二叉树的最大深度 | 111.二叉树的最小深度 | 222.完全二叉树的节点个数】
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。题目:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。输入:root = [3,9,20,null,null,15,7]给定二叉树 [3,9,20,null,null,15,7],二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。输入:root = [1,2,3,4,5,6]
2023-06-24 01:37:19
116
1
原创 【 理论基础 | 递归遍历 | 迭代遍历】
完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。
2023-06-15 00:57:12
170
原创 【LeetCode24.两两交换链表中的节点 | LeetCode19.删除链表倒数第N个节点 | LeetCode142.环形链表2】
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输出:[2,1,4,3]
2023-06-06 23:31:08
90
原创 【 栈与队列理论基础 | LeetCode232.用栈实现队列 | LeetCode225.用队列实现栈】
了解到用一个队列去模拟栈的进出元素,可以理解,大体思路是,倘若目标元素栈中为3,在栈中则是取到目标元素为止,如果第一个元素取到1,则原路放回,其余非目标元素同理,取了放回。:你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。题目:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。出栈:栈的删除操作就叫出栈,出数据在栈顶。
2023-06-05 23:05:35
132
1
原创 【 LeetCode344.反转字符串 | LeetCode541.反转字符串2 | 剑指offer05.替换空格 | LeetCode151.翻转字符串里的单词】
总结:解题不要仅仅限于只把题写出来就好,在具体开发中或者面试中,还要考虑时间复杂度,库函数虽然好用,但时间复杂度也会随之变高,不利,所以巧用方法,体会编程思想,关键部分如果可以用库函数解决,就勿用库函数。(记得在遍历字符串的过程中,只要让 i += (2 * k), i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间)因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]
2023-05-25 01:06:11
249
1
原创 【LeetCode454.四数相加 | LeetCode383.赎金信 | LeetCode15.三数之和 | LeetCode18.四数之和】
前面有道:三数之和为0(target),目标值为0,已确定,即nums[i]>0,就返回了(因为第一个元素都大于0了后面不可能相加还能等于0,因为是从小到大排序)。不能,因为target未知,可以是任意值,所以首元素与目标值可以这样判断:**nums[i]>target && (nums[i]>=0 || target >=0) **解释:nums[i]为正,target也为正,后面再加一个更不可能等于target了.题目·:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。
2023-05-22 00:39:55
215
1
原创 【哈希表理论基础 | LeetCode242.有效的字母异位词 | LeetCode349.两个数组的交集 | LeetCode202.快乐数 | Leet.. 】
例子:{2,7,3,6}。当指向第一个元素时,需7为9,所以去map里查询7是否含有,但遍历是第一个元素,map还没有存放遍历过的元素,所以map为空,接下来指向下一个元素时,map才会存遍历过的元素,2已经遍历过,所以2就放到map里面了,下一个元素是7需要2,所以去map里面看是否含有2,发现里面有存放2,最后找到两个对应的。如果数值无限制,可能上亿,哈希映射时,用数组就不合适了,因为数组下标放不了那么大的数,也浪费了存储空间。:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
2023-05-20 23:52:09
161
1
原创 【 链表理论基础 | LeetCode203.移除链表元素 | LeetCode707.设计链表 | LeetCode206.反转链表】
val 是当前节点的值,next 是指向下一个节点的指针/引用。链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。增加新节点,如下图所示:c节点的指针直接指向新节点F上,然后F节点的下一个指针指向D处,即完成在c和d处添加一个新节点f。
2023-05-19 00:50:32
156
3
原创 【LeetCode977.有序数组的平方 | LeetCode209.长度最小的子数组 | LeetCode59.螺旋矩阵】
5的平方可能是最大值,这里还需要重新定义一个新数组,将刚才得到的25放在最右边(具体看题目要求,是从小到大,还是从大到小排序)。这道题目迷惑了不少同学,纠结于数组中的元素为什么不能删除,主要是因为:数组在内存中是连续的地址空间,不能释放单一元素,如果要释放,就是全释放(程序运行结束,回收内存栈空间)。双指针法(快慢指针法)在数组和链表的操作中是非常常见的,很多考察数组和链表操作的面试题,都使用双指针法。首先是因为题目非递减顺序数组,最大的肯定在两边,好比该数组是【-5,1,2,3】4 的连续地址空间。
2023-05-18 02:35:11
203
2
原创 【代码随想录算法训练营第一天 | 数组理论基础 | LeetCode704.二分查找 | LeetCode27.移除元素】
数组理论基础 外加LeetCode例题 (含有解析以及代码)
2023-05-17 02:52:18
255
Idea修改包名,保证你解决不了
2024-07-31
IDEA中更改多级包名问题!
2024-01-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人