自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试: Hashtable vs ConcurrentHashMap

jdk1.7使用链表,时间复杂度为O(n);jdk1.8使用红黑树查询。的概念,而是直接用Node 数组+链表+红黑树。

2024-04-20 00:05:41 1032

原创 面试: 悲观锁和乐观锁

使用synchronized的互斥来保证线程安全。

2024-04-19 15:20:15 234

原创 移动笔试合集 10、三个数的最大乘积

在数组中找出由三个数组成的最大乘积,并输出这个乘积。

2024-04-18 23:23:49 164

原创 移动笔试合集 9、各位相加

反复将各个位上的数字相加,直到结果为一位数。你可以不使用循环或者递归,在。时间复杂度内解决这个问题吗?是一位数,所以返回 2。

2024-04-18 22:50:43 140

原创 移动笔试合集 8、公平的糖果交换

两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥有的糖果总数量是他们每盒糖果数量的总和。是鲍勃必须交换的糖果盒中的糖果的数目。如果存在多个答案,你可以返回其中。爱丽丝和鲍勃拥有不同总数量的糖果。是爱丽丝必须交换的糖果盒中的糖果的数目,题目测试用例保证存在与输入对应的答案。盒糖果中的糖果数量,盒糖果中的糖果数量。

2024-04-18 16:47:06 241

原创 移动笔试合集 7、第十行

tail+head,使用tail命令输出文件的第10行及之后的所有行,然后将结果通过管道传递给head命令。head命令只保留第一行并将其作为输出。sed,-n选项取消sed默认的输出,'10p'指定只打印第10行。awk,当处理到第10行时,打印该行。NR表示awk处理的当前行号。2. 至少有三种不同的解法,请尝试尽可能多的方法来解题。1. 如果文件少于十行,你应当输出什么?,请只打印这个文件中的第十行。

2024-04-18 15:47:18 273

原创 移动笔试合集 6、优美的排列

假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组。- perm[1] = 1 能被 i = 1 整除。- perm[2] = 2 能被 i = 2 整除。- perm[1] = 2 能被 i = 1 整除。- i = 2 能被 perm[2] = 1 整除。),只要满足下述条件。

2024-04-18 15:21:44 311

原创 移动笔试合集 5、部门工资前三高的所有员工

departmentId 是 Department 表中 ID 的外键(reference 列)。该表的每一行都表示员工的ID、姓名和工资。它还包含了他们部门的ID。公司的主管们感兴趣的是公司每个部门中谁赚的钱最多。id 是该表的主键列(具有唯一值的列)。id 是该表的主键列(具有唯一值的列)。- 没有第三高的工资,因为只有两名员工。- 兰迪和乔都赚取第二高的独特的薪水。该表的每一行表示部门ID和部门名。是指一个员工的工资在该部门的。- 威尔的薪水是第三高的。- Max的工资最高。- 山姆的薪水第二高。

2024-04-17 15:17:43 629

原创 面试: volatile

在使用volatile时,volatile一定要放在写的最后位置,不然可能会失效;(2)让一个while循环一直读取stop的值,直到stop为true。(5)我们使用-Xint将jit静止,就可以读到stop的新值了。(4)但是并没有读取到true,这是因为再编译foo方法时,在一段代码中,一个数的初始值是10,他要先加5,再减5;将代码优化为了字节码,所以读取不到新的stop值。读也有专门的内存屏障,会阻止下方的读移动到上面去;(1)首先,我们设置一个静态常量stop。,所以有可能发生以下情况。

2024-04-17 14:00:41 524

原创 面试:lock 和 synchronized

ReentrantLock有两种实现方式,一种是有参的构造,会根据你所设置的参数来决定是公平还是非公平锁。另一种是无参构造,默认是非公平锁。lock锁像队列一样逐个获得锁。

2024-04-16 20:19:24 390

原创 面试:sleep 和 wait

wait(),wait(long)和sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态。

2024-04-16 19:22:26 754

原创 新苗同学 — 大学新生的智能伴侣

介绍“新苗同学”APP的核心功能与创新点人工智能、计算机视觉、地理位置服务的应用。

2024-04-13 20:54:57 206 3

原创 移动笔试合集 4、套餐内商品的排列顺序

请返回该套餐内所含商品的。某店铺将用于组成套餐的商品记作字符串。,但不能含有重复的元素。

2024-04-12 13:58:03 481

原创 面试:线程和线程池

注意:Java中的 RUNNABLE涵盖了就绪、运行、阻塞I/O。这时候它真正与线程关联起来了,这时候它当中的代码就会交。在新建一个线程时,它并不是一个真正的线程,只有在它。新建态-->可运行态-->终结态(单向且不可逆)后,他就会由新建状态转换为可运行状态。线程真正走到了尽头,

2024-04-11 13:22:32 928

原创 面试: 单例模式

这样就会利用这个方法的返回值作为结果返回,就不会用字节数组反序列化生成的对象了,这样就保证了对象的单例。反射后创建了两个对象,使得单例被破坏。要想预防,在单例接口中加上以下代码。既能保证线程安全,又可以消灭懒汉在第一次使用时才创建对象的特性。利用实例的类型来创建一个实例,不会走构造方法来创建。在类执行初始化操作时,单例就会被创建,想要预防,在单例代码中实现这个方法。JVM会保证线程安全。

2024-04-11 10:45:50 593

原创 移动笔试合集 3、合并区间

区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。

2024-04-10 17:00:46 112

原创 移动笔试合集 2、重排链表

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

2024-04-10 15:46:23 420

原创 移动笔试合集 1、消失的数字

给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。2n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。2n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。8n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。

2024-04-10 10:52:21 325

原创 统计各位数字都不同的数字个数 II

给你两个a和b,返回[a, b]内各位数字都不同的数字个数。19除 11 以外,区间 [1, 20] 内的所有数字的各位数字都不同。因此,答案为 19。10除 11 以外,区间 [1, 20] 内的所有数字的各位数字都不同。因此,答案为 10。27区间 [80, 120] 内共有 41 个整数,其中 27 个数字的各位数字都不同。

2024-04-09 19:24:11 119

原创 面试:HashMap

HashMap是懒惰创建数组的,首次使用才创建数组计算索引(桶下标)如果桶下标还没人占用,创建Node占位返回如果桶下标已经有人占用已经是TreeNode走红黑树的添加或更新逻辑是普通Node,走链表的添加或更新逻辑,如果链表长度超过树化阈值,走树化逻辑返回前检查容量是否超过阈值,一旦超过进行扩容。

2024-04-06 14:11:47 520

原创 跳跃游戏 II

从下标为 0 跳到下标为 1 的位置,跳。向前跳转的最大长度。生成的测试用例可以到达。跳到最后一个位置的最小跳跃数是。步到达数组的最后一个位置。处,你可以跳转到任意。

2024-02-26 22:29:35 521

原创 跳跃游戏

无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。

2024-02-26 21:42:03 448

原创 买卖股票的最佳时机 II

随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

2024-02-25 23:44:59 241

原创 买卖股票的最佳时机

在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。

2024-02-25 23:33:27 231

原创 轮转数组

向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2024-02-24 22:34:29 294

原创 多数元素

尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。

2024-02-24 21:32:18 297

原创 删除有序数组中的重复项 II

方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。是以“引用”方式传递的。删除重复出现的元素,使得出现次数超过两次的元素。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?不需要考虑数组中超出新长度后面的元素。不需要考虑数组中超出新长度后面的元素。, 并且原数组的前五个元素被修改为。, 并且原数组的前七个元素被修改为。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。请注意,输入数组是以。

2024-02-23 21:10:15 216

原创 删除有序数组中的重复项

/ 长度正确的期望答案。不需要考虑数组中超出新长度后面的元素。如果所有断言都通过,那么您的题解将被。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度。的前两个元素被修改为。函数应该返回新的长度。的前五个元素被修改为。

2024-02-23 20:06:47 411

原创 移除元素

你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。你不需要考虑数组中超出新长度后面的元素。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?的元素,并返回移除后数组的新长度。

2024-02-22 17:50:40 302

原创 合并两个有序数组

注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。你可以设计实现一个时间复杂度为。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。合并结果是 [1]。合并结果是 [1]。的算法解决此问题吗?

2024-02-22 17:32:21 407

原创 两数相加 II

链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。如果输入链表不能翻转该如何解决?

2024-02-22 16:55:08 239

原创 两数相加

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2024-02-22 16:42:31 286

原创 合并两个有序链表

新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2024-02-21 23:15:11 234

原创 Pow(x, n)

对于 n%2 的部分,这里的目的是处理奇数次幂的情况。因为对于任何数 x,x 的奇数次幂可以拆分为 x^(n/2) * x^(n/2) * x。因此,这一步计算了 x 的 n%2 次幂。这些是递归中的基本情况,用于终止递归的过程。最后,将两次递归调用的结果相乘,这样就得到了 x 的 n 次幂的结果。需要注意的是,如果 n 为奇数,还需要额外乘以 x(如果 n 为负数,则乘以 1/x)。对于 n/2 的部分,这一步计算了 x 的 n/2 次幂。这样做的好处是将幂次数逐渐减小,降低了计算的复杂度。

2024-02-21 23:00:32 684

原创 字符串相乘

不能使用任何内置的 BigInteger 库或直接将输入转换为整数。的乘积,它们的乘积也表示为字符串形式。给定两个以字符串形式表示的非负整数。

2024-02-21 22:20:59 259

原创 二进制求和

以二进制字符串的形式返回它们的和。给你两个二进制字符串。

2024-02-20 21:27:05 354

原创 缀点成线

请你来判断,这些点是否在该坐标系中属于同一条直线上。

2024-02-20 19:46:03 237

原创 三角形的最大周长

因为我们不能用任何三条边长来构成一个非零面积的三角形,所以我们返回 0。如果不能形成任何面积不为零的三角形,返回。你可以用三个边长组成一个三角形:1 2 2。不能用边长 1、2 和 10 来构成三角形。你不能用边长 1,1,2 来组成三角形。不能用边长 1,1,10 来构成三角形。给定由一些正数(代表长度)组成的数组。由其中三个长度组成的、

2024-02-19 16:05:50 191

原创 柠檬水找零

对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。

2024-02-19 15:54:09 228

原创 去掉最低工资和最高工资后的工资平均值

去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500。去掉最低工资和最高工资以后的平均工资是 (2000)/1= 2000。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。最低工资和最高工资分别是 1000 和 4000。最低工资和最高工资分别是 1000 和 3000。

2024-02-19 15:34:47 284

四十三、Redis基础

四十三、Redis基础

2023-12-09

Redis安装包,测试代码,安装指南

Redis安装包,测试代码,安装指南

2023-12-08

三十五、Seata的基本架构、部署TC服务、微服务集成Seata

三十五、Seata的基本架构、部署TC服务、微服务集成Seata

2023-12-02

三十二、微服务保护(sentinel、jmeter)

三十二、微服务保护(sentinel、jmeter)

2023-11-29

二十九、数据聚合(拼音分词器)

二十九、数据聚合(拼音分词器)

2023-11-27

二十七、微服务案例11111111111

二十七、微服务案例11111111111

2023-11-26

二十、ES的资源包,有下载好的es和kibana

二十、ES的资源包,有下载好的es和kibana

2023-11-23

十六、RabbitMQ快速入门

十六、RabbitMQ快速入门

2023-11-21

Docker的基本操作资料

Docker的基本操作资料

2023-11-20

nacos集群搭建资料

nacos集群搭建资料

2023-11-16

代码11,仅作学习使用

二、服务拆分及远程调用,仅作学习使用

2023-11-14

空空如也

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

TA关注的人

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