- 2025-01-08【Java编程】一个高性能、支持百万级多任务重试框架:Fast-Retry
前言假设你的系统里有100万个用户,然后你要轮询重试的获取每个用户的身份信息,如果你还在使用SpringRetry和GuavaRetry之类的这种单任务的同步重试框架,那你可能到猴年马月也处理不完,即使加再多的机器和线程也是杯水车薪,而Fast-Retry正是为这种场景而生。Fast-Retry一个高性能
- 2025-01-07141.环形链表 & 142.环形链表II
141.环形链表&142.环形链表II141.环形链表思路:快慢指针or哈希表快慢指针代码:classSolution{public:boolhasCycle(ListNode*head){if(head==nullptr||head->next==nullptr)returnfalse;ListNode*fast=head->next;//不能设
- 2025-01-07Fast-Retry:一个支持百万级多任务异步重试框架
前言假设你的系统里有100万个用户,然后你要轮询重试的获取每个用户的身份信息,如果你还在使用SpringRetry和GuavaRetry之类的这种单任务的同步重试框架,那你可能到猴年马月也处理不完,即使加再多的机器和线程也是杯水车薪,而Fast-Retry正是为这种场景而生。Fast-Retry一个高性
- 2025-01-06142环形链表
最简单的思路:哈希。进阶那个快慢指针确实想不到。//哈希,空间为O(n)classSolution{public:ListNode*detectCycle(ListNode*head){unordered_set<ListNode*>adds;if(head==nullptr)returnNULL;ListNode*cur=head;
- 2025-01-04力扣算法
1.[两数之和]给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。输入:nums=[2,7,11,15],target=9输出:[0,1]暴力法publicint[]TwoSum(int[]nums,inttarget){//第一层循环:遍历数组
- 2025-01-02Day3算法练习——链表篇
反转链表用头插法即可解决,双指针就能实现原地头插法,板子题需要熟练还是要理一下,简单题不能卡两两交换链表中的节点加上虚拟头节点会好很多指针多了,模拟起来比较麻烦,建议画图删除链表的倒数第N个结点slow指向要删的结点之前而不是要删的结点,会简单不少理清楚n个结点
- 2025-01-01删除有序数组中的重复项 II
小哆啦开始力扣每日一题的第三天80.删除有序数组中的重复项II-力扣(LeetCode)小哆啦的去重冒险:数字王国的挑战在数字王国中,每个数字都有自己的位置和秩序,大家都非常希望能有一个完美的队列,确保没有重复的数字。然而,随着时间的推移,越来越多的重复数字出现在队伍中,导致
- 2025-01-01代码随想录打卡 Day 2
代码随想录打卡Day21.链表的定义与操作链表作为基本的数据结构类型,其主要形式有三种:单链表双链表循环链表由于刷代码题平时在OJ上默认定义已经给出,可以直接使用。而在面试/机试时,一般需要需要自己手写链表。因此,正确写出链表的定义是非常有必要的。一个单链表的
- 2024-12-30力扣刷题:单链表OJ篇(下)
大家好,这里是小编的博客频道小编的博客:就爱学编程很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!!目录1.环形链表(1)题目描述(2)解题思路(3)复杂度分析2.环形链表2(1)题目描述(2)解题思路(3)复杂度分析快乐的时光总是短暂,咱们下篇博文再见啦
- 2024-12-29LeetCode热题100-移动零【JavaScript讲解】
题目:快指针和慢指针同时移动,当遍历的值不为0的时候,将快指针的值赋给慢指针,如果遍历到0,快指针继续移动,慢指针不动等待被覆盖。之后使用fill方法填充0。具体答案放在最后啦~fill方法arr.fill(value[,start[,end]])参数说明:value:用于填充数组元素的值start(可选):开始
- 2024-12-29每日算法----环形链表II(Java)
本题在上个环形链表的基础上增加了难度,让找其环形链表的第一个节点还是原先的思路,定义快慢指针在第一次快慢指针相等时,a是到环形前的节点个数,k是离环形节点有多远快指针走了a+n圈环形+k慢指针走了a+m圈环形+k此时快指针走的路程是慢指针2倍。慢指针=快指针-慢指针=n圈
- 2024-12-29每日算法----环形链表(Java)
快慢指针慢指针一次走一步,快指针一次走两步,环形链表,最后一定会碰到。publicclassA06hasCycle{publicbooleanhasCycle(ListNodehead){ListNodeslow=head;//慢指针ListNodefast=head;//快指针//快指针不为null且下一个节点
- 2024-12-27148. 排序链表
题目链接解题思路:在链表上使用排序算法。注意,不能使用快排,因为快排的最差时间复杂度是O(n^2),数组形式的快排,以随机数划分能够得到O(n*logn),但是链表的形式,不太好以随机数的方式划分。所以最好的排序方法是使用归并排序。先用快慢指针,将链表分成两部分,然后两部分分别归并排
- 2024-12-27141. 环形链表
题目链接解题思路:一个快指针,一个慢指针,如果二者相等了,说明有环。如果快指针为空了,说明没环代码#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,x):#self.val=x#self.next=NoneclassSolution:defhas
- 2024-12-26LeetCode 209. 长度最小的子数组 (C++实现)
1.题目描述给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的子数组[numsl,numsl+1,…,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输入:target=7,nums=[2,3,1,2,4,3]
- 2024-12-23算法刷题_删除链表的倒数第N个结点
算法刷题Day8_删除链表的倒数第N个结点文章目录算法刷题Day8_删除链表的倒数第N个结点前言一、双指针思想二、具体步骤1.定义快慢指针2.fast指针先移动n+1步3.fast和slow一起移动4.删除倒数第N个节点三、完整代码总结前言一、双指针思想双指针的经典应用,如果
- 2024-12-236. 说说什么是 fail-fast?
fail-fast机制是Java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了,那么线程A访问集合时,就会抛出ConcurrentModification
- 2024-12-22【LeetCode: 141. 环形链表 + 链表】
- 2024-12-21环形链表 II(快慢指针)
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。如果
- 2024-12-21环形链表(快慢指针)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。仅仅是为了标
- 2024-12-17【华为OD-E卷-寻找链表的中间结点 100分(python、java、c++、js、c)】
【华为OD-E卷-寻找链表的中间结点100分(python、java、c++、js、c)】题目给定一个单链表L,请编写程序输出L中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。例如:给定L为1→7→5,则输出应该为7;给定L为1→2→3→4,则输出应该为3;输入描述
- 2024-12-16【LC】141. 环形链表
题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。
- 2024-12-16如何判断链表是否有环?
在前端开发中,虽然链表不是最常用的数据结构,但在处理某些问题时,它仍然是一个有用的工具。判断链表是否有环是一个常见的链表相关问题。以下是一个简单而有效的方法来判断链表是否有环:使用快慢指针(Floyd'sCycle-FindingAlgorithm)初始化两个指针,一个快指针(每次移动两个节点)和一
- 2024-12-15CPython调试和性能分析
cpython解释器在源码ceval.c的_PyEval_EvalFrameDefault函数有一个大的switch(opcdoe)就是字节码解释器的主要部分,示例代码如下:switch(opcode){caseLOAD_FAST://实现LOAD_FAST操作的代码break;caseSTORE_FAST://实现STORE_F
- 2024-12-13链表操作2
[Algo]链表操作21.两个链表的交点ListNode*intersectionNode(ListNode*head1,ListNode*head2){if(head1==nullptr||head2==nullptr)returnnullptr;ListNode*cur1=head1,*cur2=head2;intlen1=1,len2=1;while(cur1->next!=nul