- 博客(224)
- 资源 (1)
- 收藏
- 关注
原创 [算法][哈希表][排序] [leetcode]2225. 找出输掉零场或一场比赛的玩家
【代码】[算法][哈希表][排序] [leetcode]2225. 找出输掉零场或一场比赛的玩家。
2024-05-22 16:27:10 580 2
原创 [算法][前缀和] [leetcode]724. 寻找数组的中心下标
【代码】[算法][前缀和] [leetcode]724. 寻找数组的中心下标。
2024-05-21 14:24:08 300
原创 [算法][双指针][排序][leetcode]826. 安排工作以达到最大收益
【代码】[算法][双指针][排序][leetcode]826. 安排工作以达到最大收益。
2024-05-17 15:49:25 141
原创 [算法][贪心][leetcode]1953. 你可以工作的最大周数
【代码】[算法][贪心][leetcode]1953. 你可以工作的最大周数。
2024-05-16 15:10:09 230
原创 [算法][贪心算法][数组][leetcode]2589. 完成所有任务的最少时间
【代码】[算法][贪心算法][数组][leetcode]2589. 完成所有任务的最少时间。
2024-05-15 13:41:11 137
原创 [算法][数组][leetcode]2391. 收集垃圾的最少总时间
【代码】[算法][数组][leetcode]2391. 收集垃圾的最少总时间。
2024-05-11 18:51:04 287 2
原创 [算法][差分][延迟相差][leetcode]2960. 统计已测试设备
【代码】[算法][差分][延迟相差][leetcode]2960. 统计已测试设备。
2024-05-11 18:48:07 224 2
原创 [算法][单调栈] [leetcode]316. 去除重复字母
考虑字符串 a 与 字符串 b,如果字符串 a 在 a 与 b 相异的第一处的字符在字母表上先于对应 b 在此处的字符出现,则称字符串 a 字典序小于 b。在遍历s时,减少s[i]的出现次数,也就是把left[s[i]]4.如果s[i]不在ans中,那么判断s[i]是否小于ans的最后一个字母(记作x),如果s[i]<6.把s[i]加到ans未尾,同时标记nAns[s[i]]=true。然后继续遍历s的下一个字母。5.反复执行第4步,直到ans为空,或者s[i]>x,或者left[x]=0。
2024-05-11 18:36:45 576 1
原创 【算法】【单调栈】【leetcode】1019. 链表中的下一个更大节点
也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值。)的下一个更大的节点的值。个节点没有下一个更大的节点,设置。对于列表中的每个节点,查找下一个。
2024-04-30 15:16:35 500
原创 【算法】【贪心算法】【leetcode】870. 优势洗牌
给定两个长度相等的数组 nums1 和 nums2,nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i]孙膑就教他用自己的下等马对齐王的上等马,再用自己的上等马对齐王的中等马,最后用自己的中等马对齐王的下等马,结果三局两胜,田忌赢了。把nums1当成是田忌的马,nums2当成是齐威王的马。输入:nums1 = [12,24,8,32], nums2 = [13,25,32,11]输入:nums1 = [2,7,11,15], nums2 = [1,10,4,11]
2024-04-30 15:08:04 1955 3
原创 【算法】【单调栈】【leetcode】901. 股票价格跨度
/ 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。例如,如果未来 7 天股票的价格是 [100,80,60,70,60,75,85],那么股票跨度将是 [1,1,1,2,1,4,6]。int next(int price) 给出今天的股价 price ,返回该股票当日价格的 跨度。最多调用 next 方法 104 次。
2024-04-29 16:30:52 337
原创 【算法】【单调栈】【leetcode】1475. 商品折扣后的最终价格
商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j] <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。商品 1 的价格为 price[1]=4 ,你将得到 prices[3]=2 的折扣,所以最终价格为 4 - 2 = 2。商品 2 的价格为 price[2]=6 ,你将得到 prices[3]=2 的折扣,所以最终价格为 6 - 2 = 4。
2024-04-29 16:22:25 161
原创 【算法】【单调栈】每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,输入: temperatures = [73,74,75,71,69,72,76,73]解法二:单调栈(只要涉及到找下一个最值的问题都可以使用单调栈来求解)输入: temperatures = [30,40,50,60]这个没什么好说的,就是循环去捞数据,捞到数据就直接跳出循环就行!输出: [1,1,4,2,1,1,0,0]//先做特殊条件判断。输出: [1,1,1,0]输出: [1,1,0]
2024-04-29 16:12:37 278
原创 go是如何运行的?
go程序的入口是main函数吗?诚然很多程序的入口都是main,比如java,C++,C等,但是go由于他的运行时环境是代码,而不是像Java那样有自己的虚拟机,所以程序在运行main函数之前,需要做很多的准备工作,该文章就来研究一下go程序是如何运行的!Go启动时经历了检查、各种初始化、初始化协程调度的过程,main.main()也是在用户协程中运行的。
2024-04-28 15:57:56 750
原创 【算法】【OD算法】【单调栈】找朋友
在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第i个小朋友可以看到的右边的第一个比自己身高更高的小朋友j,那么j是i的好朋友(j > i)。请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。小朋友人数范围是 [0, 40000]。
2024-04-26 17:18:23 476
原创 mysql索引最左匹配原则的理解?(绝对牛逼)
测试的时候就发现不对劲随便建了一个student表做测试。建了两个索引,故意这样建的。EXPLAIN SELECT * FROM student WHERE name='小红';依据mysql索引最左匹配原则,两个索引都匹配上了,这个没有问题。。EXPLAIN SELECT * FROM student WHERE cid=1 AND name='小红';为什么还能匹配索引。这是知乎上的一个问题,今天我们就带着这个问题来深入理解一下mysql索引最左匹配原则。
2024-04-24 17:59:37 561
原创 go的编译以及运行时环境
很多语言都有自己的运行时环境,go自然也不例外,那么今天我们就来讲讲go语言的运行时环境!注意💡:编译过程都干了些啥事可以去看看编译原理,中间码是平台无关的,机器码是平台相关的!我们都知道Java的运行时环境是jvm ,javascript的运行时环境是浏览器内核。,Runtime与用户程序没有明显界限,直接通过函数调用!那么go的运行时环境是什么样呢?说明编译的时候自带运行环境。这样就屏蔽了系统调用!
2024-04-22 18:40:27 1124
原创 事务并发控制之说透mvcc
不知道有没有人有过这样的想法💡,为什么在MySQL中已经有了各种各样的锁了,还需要mvcc呢?如果你没有想过这个问题,那只能证明你真的没有想过。但是我的建议是可以去想一下,如果你从来没有想过这个问题的话,因为这个问题还挺重要的!思考清楚这个问题,将更有利于我们深入了解MySQL!接下来我将通过这篇文章向你讲述MVCC中各个方面的知识,保证让你一次看的爽,看的明白!从而更好的理解我开头提出来的问题!当前读它读取的数据库记录,都是当前最新的版本,会对当前读取的数据进行加锁,防止其他事务修改数据。是悲观锁。
2024-04-22 15:20:13 1326
原创 【面试题】MySQL 事务的四大特性说一下?
原子性子性意味着事务中的所有操作要么全部完成,要么全部不完成,它是不可分割的单位。如果事务中的任何一个操作失败了,整个事务都会回滚到事务开始之前的状态,如同这些操作从未被执行过一样。一致性确保事务从一个一致的状态转换到另一个一致的状态。比如在银行转账事务中,无论发生什么,转账前后两个账户的总金额应保持不变。假如 A 账户(100 块)给 B 账户(10 块)转了 10 块钱,不管成功与否,A 和 B 的总金额都是 110 块。隔离性意味着并发执行的事务是彼此隔离的,一个事务的执行不会被其他事务干扰。
2024-04-17 16:22:45 381
原创 如何在并发环境下生成一个只读的map?
在日常开发过程中,我们经常会遇到一些资源初始化的情况,往往有些资源就是那种我初始化以后我们就不希望被改动,但是我们又担心别人使用的时候不小心改动了,这时候我就在想,要是我们的JDK能提供一种不能被修改的容器改有多好,好死不死,jdk中还真有这样的容器,map和list都有,这里以map为例子给大家讲解一下!
2024-04-17 14:03:06 407
原创 【面试题】细说mysql中的各种锁
作为一名IT从业人员,无论你是开发,测试还是运维,在面试的过程中,我们经常会被数据库,数据库中最经常被问到就是MySql。当面试官问MySql的时候经常会问道一个问题,”MySQL中有哪些锁?“当我们去网上找相应的资料的时候却是五花八门,张三说的一个样,李四说的另一个样。like this…案例一:案例二:案例三:案例四:搞得我们都不知道他们说到底对不对,全不全,…于是我们非常之困惑,面试的时候不知如何作答,正是为了解决这个问题,我查阅了很多书籍,国内外资料,写下这篇文章,希望对你有所帮助。
2024-04-12 19:04:10 1594 1
原创 SpringBoot中定时任务踩坑,@Scheduled重复执行问题排查(看完直接破防)
今天再开发业务需求的过程中,需要用到定时任务,原本定的是每10分钟推送一次,可是当每次十分钟到的时候,定时任务就会推送多条!但是非常奇怪的是,本地调试的时候不会有问题,只有当你部署到到服务器上的时候才会暴露这个问题!!!!如图:这些消息都是一次性推送出来的,本来他们应该只有一条被推送出来的,可是现在他们却全都出来了,难道真是“一家人就要整整齐齐”吗?为什么本地调试我这样写和都只执行一次,而到线上的时候就会执行多次,有谁能知道这是为什么?
2024-04-10 18:49:02 3564 1
原创 【面试题】微博、百度等大厂的排行榜如何实现?
至此我们已经知道了微博、百度得排行版是如何实现的,举一反三,大多大数据量下的排序我们都可以参考此实现方案!
2024-04-10 14:04:50 736
原创 在mysql中如何更新数据呢?
为了避免这些错误,在执行更新操作之前,仔细检查代码、验证数据、测试更新语句,并确保对数据库结构和权限有清晰的了解。语句结合适当的条件来实现。例如,如果你想将年龄大于 20 的用户的状态设置为。请谨慎使用这种方式,因为它会更新所有行的数据。在 MySQL 中,更新一条数据可以使用。子句,你可以根据具体的需求更新多条数据。子句中指定条件来确定要更新的多行数据。条件,只有满足条件的行才会被更新。如果你想更新多条数据,可以使用。子句:这将更新表中的所有数据。使用特定的条件:通过在。
2024-04-09 16:17:12 1075
原创 【面试题】如何在级别用户中检查用户名是否存在?
普遍认同的规范是:value > 10kb,即认定为大 key,同时像list,set,hash 等容器类型的 redis key,元素数量 > 5000,即认定为大 key。
2024-04-08 17:46:03 833
原创 【面试题】如何在亿级别用户中检查用户名是否存在?
这种方案虽然实现了功能,但是这样做会带来一个比较致命的问题,那就是查询速度比较慢,亿级别数据是很大的,这时候还考虑mysql的话,他的查询速度将会非常慢,这样用户的体验将会非常不好,有人可能会说了呀,那你可以分库分表呀,是的,可以这么做,但是就算分库分表你还是得扫描整个库表,这种做法解决不了根本问题。普遍认同的规范是:value > 10kb,即认定为大 key,同时像list,set,hash 等容器类型的 redis key,元素数量 > 5000,即认定为大 key。需要更换一个,这是如何实现的呢?
2024-04-08 17:31:09 980
原创 【面试题】redis在工作中的使用场景有哪些?
前言:在实际工作中,Redis作为一种高性能的内存数据库和缓存系统,可以应用于多种场景,同时在面试过程中也经常被问到类似的问题,我们经常会被问的一脸懵逼,那今天我们就来总结一下redis的一些使用场景。:结合Redis的数据结构,如集合、有序集合和位图,实现快速的搜索索引、关键词匹配和过滤功能。:利用Redis的地理位置功能,存储和查询地理位置数据,实现附近的人、地点搜索等功能。:通过Redis的计数器和统计功能,实时记录和展示系统的性能指标、用户活动等数据。
2024-04-07 15:36:31 870
原创 【面试题】RocketMQ的工作流程?
此外,RocketMQ还提供了严格的消息顺序保证,确保同一分区内的消息按照发送顺序进行消费。Name Server维护了关于集群中的Broker(消息代理)的信息,包括主题和分区的路由信息。:消费者在处理完消息后,向Broker发送确认消息,告知Broker消息已经被成功消费。Broker根据确认消息的反馈,更新消费进度,以便在需要时重新传递未被确认的消息。Name Server提供了相应主题的路由信息,消费者根据路由信息连接到相应的Broker节点,并拉取消息。复制机制确保了消息的高可用性和容错性。
2024-04-07 15:14:00 227
原创 Spring与SpringBoot的区别
Spring Boot还提供了大量的开箱即用的特性和功能,如内嵌的服务器、自动配置、健康检查、度量指标、配置管理等,以简化开发者的工作。:Spring框架提供了丰富的模块和功能,但需要开发者手动集成和配置。:Spring框架需要开发者显式地进行大量的配置,而Spring Boot通过约定大于配置的原则,提供了默认配置和自动配置,减少了开发者的配置工作。需要注意的是,Spring Boot是建立在Spring框架之上的,它并不取代Spring框架,而是提供了更简化和快速开发的方式。
2024-04-03 14:51:47 272
原创 0基础如何进入IT行业?
在当今数字化的时代,IT 行业正迅速发展,吸引着众多人的关注。这也吸引很多人想通过进入IT行业淘金,很多学土木、新闻传播等很多行业都想转行。也有很多人通过自学成功转行,就拿我自己来说,虽然学的是通信工程专业,但是基本上也没好学学,我是一枚妥妥的学渣,大学四年我就没有哪年没挂科,毕业人家都已经去上班了我还在补考,等着拿毕业证去企业报道,所以我的编程课也基本上是划水,但是最后结局却是好的,我通过我的自学,在没毕业就拿到了当时还不错的offer,成为了一名软件工程师。
2024-04-03 14:37:57 1168
原创 程序员35岁会失业吗?
在当今数字化的时代,程序员扮演着至关重要的角色。他们是那些将抽象的概念转化为实际运行的代码,创造出改变我们生活、工作和娱乐方式的创新产品的幕后英雄。随着信息技术的飞速发展,程序员这一职业也经历了巨大的变革与成长。从最初的少数技术先驱者,到如今成为各个行业中不可或缺的力量,程序员的影响力愈发显著。然而,伴随着职业发展,一个备受关注的问题也逐渐浮现:程序员在 35 岁时是否会面临失业的风险?这不仅是程序员自身关心的话题,也引起了整个社会的广泛关注。35 岁,对于许多人来说,是一个人生的重要阶段。
2024-04-02 17:43:15 1533
原创 【面试题】spring 事务在哪些情况下会失效?
如果在当前类中进行内部调用方法,比如在A类中有a方法和b方法,a方法没有加@Transaction,b方法加了@Transaction,在方法a中调用方法b,方法b中的事务也不会生效。这是因为spring在扫描bean的时候会自动为标注了@Transaction注解类生成一个代理类,在有注解方法被调用时,实际上是代理类调用的,代理类在调用之前会开启事务,执行事务操作。但是同类中的方法相互调用,相当于this.b(),此时的b方法并非代理类调用,而是直接通过原有的bean直接调用,所以注解不起作用。
2024-04-02 16:08:30 226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人