草庐IT

leetcode刷题之回文链表

全部标签

算法打卡day03|链表专题01:虚拟头节点使用、单链表查找删除元素、链表设计通过索引(add、delete、get)、使用双指针思路实现链表反转|Leetcode203、707、206

1.基础知识——链表是由指针串联在一起的线性结构分类:(1)单链表:每个节点由数据域与指针域组成{data,next}(2)双链表:每个节点由数据域及指针域(两个指针)组成{data,pre,next}(3)循环链表:节点结构与单链表一致,但是首尾相连存储:内存分布不是连续的链表定义代码※链表优点在于长度不固定,能够实现动态增删,适用于增删频繁但是查询频率比较低的情景Leetcode203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/分析:经典链表操作,主要需要考虑两种场景当前节

【leetcode】622. 设计循环队列(Circular Queue)

文章目录1.怎么设计循环队列?2.数组实现循环队列往期相关文章推荐:1.队列(Queue)2.栈(Stack)之浅谈数组和链表实现栈各自的优缺点3.线性表之链表(LinkedList)4.线性表之顺序表(SequenceList)1.怎么设计循环队列?  循环队列也叫环形队列,可以用数组或循环链表实现,使用场景是在那种只需要固定空间大小,且一直有插入删除的情况。设计循环队列最大的问题是怎么确定队列是空还是满的状态,如果是增加额外变量size记录数据个数,则很容易解决这个问题,不过这里不打算使用size的方式。下面将一步步分析使用数组的方式如何实现,至于循环链表实现队列,看似天然循环,实际还是很

手撕链表OJ

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇:Solitary-walk   ⸝⋆ ━━━┓   -个性标签-:来于“云”的“羽球人”。Talkischeap.Showmethecode┗━━━━━━━ ➴ⷯ本人座右铭: 欲达高峰,必忍其痛;欲戴王冠,必承其重。👑💎💎👑💎💎👑 💎💎💎自💎💎💎💎💎💎信💎💎💎👑💎💎 💎💎👑  希望在看完我的此篇博客后可以对你有帮助哟👑👑💎💎💎👑👑  👑👑👑💎👑👑👑目录:一 ​​​​​​移除链表元素二:反转一个单链表三:链表的中间结点四:链表中倒数第k个结点五:合并两个有序链表六:链表分割七:链表的回文结构八:相交链表题目:九: 环形链表十:环形链

算法沉淀——递归(leetcode真题剖析)

算法沉淀——递归01.汉诺塔问题02.合并两个有序链表03.反转链表04.两两交换链表中的节点05.Pow(x,n)递归是一种通过调用自身的方式来解决问题的算法。在递归算法中,问题被分解为更小的相似子问题,然后通过对这些子问题的解进行组合来解决原始问题。递归算法通常包含两个主要部分:基本情况(BaseCase):定义问题的最小规模,直接解答而不再进行递归。基本情况是递归算法的出口,防止算法陷入无限递归。递归步骤:在问题规模较大时,将问题划分为相似但规模较小的子问题,并通过递归调用解决这些子问题。递归调用自身是递归算法的核心。递归算法在解决许多问题上非常强大,尤其是对于那些可以通过分解为子问题并

代码随想录算法训练营第4天 | 24. 两两交换链表中的节点 / 19.删除链表的倒数第N个节点 / 面试题 02.07. 链表相交 / 142.环形链表II

目录链表算法详解24.两两交换链表中的节点(1)易错点(2)思路(3)代码19.删除链表的倒数第N个节点(1)易错点(2)思路(3)代码面试题02.07.链表相交(1)易错点(2)思路(3)代码142.环形链表II(1)关键点(2)思路(3)代码参考资料链表链表:地址非连续,靠指针相互联系。注意:具体的地址分散情况依据设定不同。算法详解24.两两交换链表中的节点(1)易错点虚拟头结点使用:由于头结点并没有真正的前置节点,交换时假设不采用虚拟头结点则需要对头结点单独处理。两个节点交换涉及到四个节点:在交换A-B这段链表切片上,实现AB的交换,还涉及到A的前置节点和B的后置节点。循环条件:当cur

c++ - 具有堆栈和队列的字符串回文 (C++)

这可以很好地编译并且在没有空格的情况下也能正常工作,但是一旦我在其中放入空格就会告诉我它不是回文或超时。任何帮助将不胜感激!intmain(){queueq;stacks;stringthe_string;intmismatches=0;cout>the_string;inti=0;while(cin.peek()!='\n'){cin>>the_string[i];if(isalpha(the_string[i])){q.push(toupper(the_string[i]));s.push(toupper(the_string[i]));}i++;}while((!q.empty(

刷题笔记[HUBUCTF 2022 新生赛]web

开学后可能就不怎么刷题了,因为课巨多😅,可能分享其他东西,虽然寒假也没做多少。不管了反正以后不走ctf这条路。[HUBUCTF2022新生赛]题目checkinHowToGetShellCalculateezsqlcheckin知识:true和不是0、false、null的值弱比较,结果都为true。所以只要password和username不是那几个值,他们和true比较就都是true,so传个序列化的数组进去a:2:{s:8:“username”;b:1;s:8:“password”;b:1;}布尔值是1就是true。HowToGetShell无字母RCE,用不是字母的字符异或后构造pay

LeetCode2560. House Robber IV——二分答案+动态规划

文章目录一、题目二、题解一、题目Thereareseveralconsecutivehousesalongastreet,eachofwhichhassomemoneyinside.Thereisalsoarobber,whowantstostealmoneyfromthehomes,butherefusestostealfromadjacenthomes.Thecapabilityoftherobberisthemaximumamountofmoneyhestealsfromonehouseofallthehousesherobbed.Youaregivenanintegerarraynum

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习一(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习一01.全排列02.子集03.找出所有子集的异或总和再求和04.全排列II05.电话号码的字母组合01.全排列题目链接:https://leetcode.cn/problems/permutations/给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示例3:输入:nums=[1]输出:[[1]]提示:1

小白水平理解面试经典题目LeetCode 1025 Divisor Game【动态规划】

1025除数游戏小艾和小鲍轮流玩游戏,小艾首先开始。最初,黑板上有一个数字n。在每个玩家的回合中,该玩家做出的动作包括:选择任意x,使0将黑板上的数字n替换为n-x。此外,如果玩家无法采取行动,他们就会输掉比赛。当且仅当小艾赢得游戏时返回true,假设两个玩家都发挥最佳。例子在大学某个自习的下午,小白坐在教室看到这道题。想想现年景一过,没有什么理由再不学习了。真是若对黄花孤负酒,怕黄花,也笑人岑寂。这时候黑长直女神过来问:小白,你看到1025这道题了吗,怎么感觉看着很简单,但是理解起来很麻烦啊,这道题你有什么思路呢?小白内心镇定:这机会不就来了吗,小美,《一起摇太阳》有机会一起去看看吧?哦,不