- 博客(49)
- 收藏
- 关注
原创 代码随想录算法训练营--打卡day8
判断),就从新数组的当前位置开始,依次将 “number” 的字符逆序填入,同时将索引。如果遇到的不是数字字符,就直接将该字符复制到新数组的当前位置,并将。向前移动 6 个位置(因为 “number” 有 6 个字符)。在遍历过程中,如果遇到数字字符(通过。采用从后向前遍历的方式处理新数组。,计算出替换后的字符串的长度(用于存储替换后的字符串内容。考虑到如果当前组的字符数不足。根据前面统计的数字个数。向前移动 1 个位置。
2025-04-09 21:50:14
503
原创 代码随想录算法训练营--打卡day6
排序操作是后续双指针法和去重操作的基础。排序后相同元素会相邻,方便去重,而且能利用双指针高效地寻找满足条件的组合。组合得到相同的和时,会出现统计错误。无法记录每种和出现的次数,当不同的。来记录和以及其出现的次数。
2025-04-06 17:53:58
489
原创 代码随想录算法训练营--打卡day5
在计算过程中,可能会出现循环的情况,也就是某些数字会反复出现,导致计算陷入无限循环。可以看到,数字 4 再次出现,形成了循环,无法得到结果 1,所以 4 不是快乐数。是一个不允许有重复元素的集合,它主要用于存储元素,无法直接记录元素出现的次数.因为本题,我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标,长度为 26 的整数数组,数组的每个索引位置对应一个英文字母。1.得到数字的最后一位——>取模运算 %3.去掉最后一位——>整除运算。不保证元素的插入顺序。2.1我的错误代码!
2025-04-01 20:11:44
333
原创 代码随想录算法训练营--打卡day1
1.因为这是一个有序的升序数组,所以数组内平方后的最大数字都在数组的最左边(下标:left)或者最右边(下标:right)2.循环条件——>while(left<=right). 要使用 <= ,因为left == right是有意义的。2.nums [fast]——>for循环 遍历判断数组元素是否需要删除。1.左闭右闭区间——>[left,right]1.快慢指针——>fast/slow下标。3.变化的-下标为mid中间值元素。放入一个就slow++;
2025-03-27 19:32:05
286
原创 JAVA多线程中的阻塞式队列
此代码利用的阻塞特性,实现了一个简单且线程安全的生产者 - 消费者模型。通过put和take方法,自动处理队列满和空的情况,避免了复杂的线程同步操作。
2025-03-20 20:20:56
398
原创 JAVA多线程中的单例模式
在 Java 里,单例模式指的是一个类仅有一个实例,并且提供一个全局访问点(公有get方法)来获取该实例。在多线程环境下实现单例模式时,需要保证线程安全,避免多个线程同时创建多个实例。下面介绍几种常见的多线程单例模式实现方式。
2025-03-20 19:34:52
589
原创 JAVA中的多线程安全问题及解决方案
线程安全是指在多线程环境下,对共享资源进行并发访问时,程序能够正确地处理,不会出现数据不一致、逻辑错误等问题,确保程序的执行结果与单线程环境下的执行结果相同,或者符合预期的并发逻辑。有些代码在多线程环境执行下会出现问题,这样的问题就称为线程不安全原子性指的是一个操作是不可中断的,要么全部执行,要么都不执行。在多线程环境下,如果多个线程同时修改共享变量,可能会导致数据不一致。比如 i++ 这样的操作,虽然看起来是一条语句,但实际上分为读取、增加和写入三个步骤,这就不是原子的。
2025-03-13 23:54:56
994
原创 Thread类及常见方法
2.通过 使用 Thread.interrupted() 或者 Thread.currentThread().isInterrupted() 设置中断标志位.在 Java 中,每个线程都有一个布尔类型的中断标志位-false。当其他线程调用某个线程的。该方法并不会立即终止目标线程,而是设置其内部的中断状态标志位。这个标志位可以用来通知线程应该停止当前的操作。简单理解为:调用者阻塞,被调用的线程对象先执行。run() 普通方法,不会创建一个新线程。五.线程的等待-join()!当调用了此方法之后,
2025-03-07 00:11:50
852
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人