草庐IT

leetcode刷题之回文链表

全部标签

【考研复习】二叉树的特殊存储|三叉链表存储二叉树、一维数组存储二叉树、线索二叉树

文章目录三叉链表存储二叉树三叉链表的前序遍历(不使用栈)法一三叉链表的前序遍历(不使用栈)法二一维数组存储二叉树一维数组存储二叉树的先序遍历线索二叉树的建立中序线索二叉树的遍历真题演练三叉链表存储二叉树三叉链表结构体表示如下图所示:构造三叉链表方式:typedefstructnode{chardata;structnode*parent,*lchild,*rchild;}BTNode,*BiTree;BTNode*creattree(BiTree&t){//易错点:树的引用charch;cin>>ch;if(ch=='#'){t=NULL;}else{t=(BTNode*)malloc(siz

【基础算法】反转链表的三种方法

一、通过迭代来实现链表反转通过迭代来实现链表的反转,我们需要三个变量:curr:保存当前节点,初始保存的是head(头结点)prev:保存当前节点的前一个节点,初始为nullnext:保存当前节点的后一个节点,初始为head.next那我们怎么通过这三个变量来实现链表的反转呢?让我们先看一下实现步骤:**注意:**好,我们的链表当next==null时,链表也正确的完成了反转。​那我们前面所疑惑的问题:为什么当我们递归之前要进行一次反转也就不言而喻了。因为,如果我们不在递归前进行一次反转的话,最后一次我们会少反转一个节点(当递归反转结束后,会丢失原始链表中的尾节点)。二、通过递归来实现链表反转

基于Java+Vue+uniapp微信小程序刷题系统设计和实现

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。🍅文末获取源码联系🍅👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅Java项目精品实战案例《100套》Java微

【动态规划】【字符串】132.分割回文串 II

作者推荐【动态规划】【字符串】扰乱字符串本文涉及的基础知识点动态规划字符串LeetCode132.分割回文串II给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文。返回符合要求的最少分割次数。示例1:输入:s=“aab”输出:1解释:只需一次分割就可将s分割成[“aa”,“b”]这样两个回文子串。示例2:输入:s=“a”输出:0示例3:输入:s=“ab”输出:1提示:1s仅由小写英文字母组成动态规划分两步:一,枚举回文的中心,记录所有的回文。空间复杂度和时间复杂度都是O(nn)。二,通过动态规划计算所有所有前缀可以差分成多少个不重叠的子字符串。空间复杂度O(n),时间复杂度是O(nn

【C++】STL 容器总结 ( STL 各容器特点 | STL 个容器使用场景 | 单端数组容器 | 双端队列容器 | 双向链表容器 | 集合容器 | 多重集合容器 | 映射容器 | 多重映射容器 )

文章目录一、STL各容器特点1、std::vector单端数组容器2、std::deque双端队列容器3、std::list双向链表容器4、std::set集合容器5、std::multiset多重集合容器6、std::map映射容器7、std::multimap多重映射容器二、STL各容器特点总结三、STL各容器使用场景示例一、STL各容器特点1、std::vector单端数组容器std::vector动态数组容器特点:底层结构:底层由动态数组实现,特点是存储空间连续;访问遍历:支持随机访问迭代器,可使用下标访问,访问元素非常快O(1)复杂度;插入/删除:尾部插入/删除效率高O(1)复杂度;

Leetcod面试经典150题刷题记录 —— 矩阵篇

Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组/字符串篇Leetcod面试经典150题刷题记录——双指针篇本篇Leetcod面试经典150题刷题记录——矩阵篇Leetcod面试经典150题刷题记录——滑动窗口篇Leetcod面试经典150题刷题记录——哈希表篇Leetcod面试经典150题刷题记录——区间篇Leetcod面试经典150题刷题记录——栈篇矩阵篇1.有效的数独2.螺旋矩阵Python3.旋转图像Python额外开辟数组空间原地置换法4.矩阵置零5.生命游戏Python1.有效的数独题目链接:有效的数独-leetcode题目描述:请你判断一

判断字符串是否为回文的三种常用编程语言实现

引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用于判断字符串是否为回文的算法,并对它们的时间复杂度和空间复杂度进行分析。正文:我们将分别介绍用C语言、Python和Java实现判断字符串是否为回文的算法。C语言实现:#include#include#includeboolisPalindrome(char*s){intlen=strlen(s);for(inti=0,j=len-1;ij;i++,j--

【Leetcode 36】有效数独 —— 哈希表|矩阵

36.有效数独请你判断一个9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的需要根据以上规则,验证已经填入的数字是否有效即可空白格用‘.’表示。示例1:输入:board=[[“5”,“3”,“.”,“.”,“7”,“.”,“.”,“.”,“.”],[“6”,“.”,“.”,“1”,“9”,“5”,“.”,“.”,“.”],[“.”,“9”,“8”,“.”,“.”,“.”,“.”,“6”,

《LeetCode力扣练习》代码随想录——栈与队列(前 K 个高频元素---Java)

《LeetCode力扣练习》代码随想录——栈与队列(前K个高频元素—Java)刷题思路来源于代码随想录347.前K个高频元素堆classSolution{publicint[]topKFrequent(int[]nums,intk){if(nums.length==1){returnnums;}MapInteger,Integer>map=newHashMap>();for(intnum:nums){map.put(num,(map.getOrDefault(num,0)+1));}PriorityQueueint[]>heap=newPriorityQueue>((o1,o2)->o1[1]

【排序算法】【二叉树】【滑动窗口】LeetCode220: 存在重复元素 III

作者推荐【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值本文涉及的基础知识点C++算法:滑动窗口总结题目给你一个整数数组nums和两个整数indexDiff和valueDiff。找出满足下述条件的下标对(i,j):i!=j,abs(i-j)abs(nums[i]-nums[j])如果存在,返回true;否则,返回false。示例1:输入:nums=[1,2,3,1],indexDiff=3,valueDiff=0输出:true解释:可以找出(i,j)=(0,3)。满足下述3个条件:i!=j-->0!=3abs(i-j)abs(0-3)abs(nums[i]-nums[j])ab