草庐IT

leetcode刷题之回文链表

全部标签

【算法|滑动窗口No.1】leetcode209. 长度最小的子数组

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣算法分析3️⃣代码编写1️⃣题目描述给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[nums[l],nums[l+1],...,nums[r-1],nums[r]],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输入:target

【LeetCode力扣】75 快速排序的子过程partition(荷兰国旗问题)

目录1、题目介绍2、解题思路2.1、冒泡排序暴力破解2.2、快速排序的子过程partition2.2.1、详细过程描述2.2.2、代码描述1、题目介绍原题链接:75.颜色分类-力扣(LeetCode)示例1:输入:nums=[2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例2:输入:nums=[2,0,1]输出:[0,1,2] 提示:n==nums.length1nums[i]为0、1或22、解题思路根据题目的意思,简单来说就是将数组里的数据按照0、1、2的顺序排列。如果只是要求排序,其实投机取巧的方式很多,比如直接使用冒泡排序也能完成此题。2.1、冒泡排序暴力破解voidsort

【算法|动态规划No.18】leetcode718. 最长重复子数组

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣题目解析3️⃣解题代码1️⃣题目描述给两个整数数组nums1和nums2,返回两个数组中公共的、长度最长的子数组的长度。示例1:输入:nums1=[1,2,3,2,1],nums2=[3,2,1,4,7]输出:3解释:长度最长的公共子数组是[3,2,1]。示例2:输入:nums1=[0,0,0,0,0],nums

C语言数据结构-用链表解决约瑟夫环问题

前记只是普通的大学生一枚,不会很牛的技巧和算法,只是在做数据结构作业中的一点感悟和思考。也不知道自己写得对不对,有什么意见和建议都可以直接指出来哦,我虚心接受(低头鞠躬.jpg)......题目试用线性表的链表存储结构来实现约瑟夫(Josephu)问题。约瑟夫问题如下:设有n个人围坐圆桌周围。从某个位置上的人开始从1报数,数到m的人便出列,下一个人(第m+1个)又从1报数开始,数到m的人便是第2个出列的人,依次类推,直到最后一个人出列为止,这样就可以得到一个人员排列的新次序。例如,n=8,m=4,从第1个人数起,得到的新次序为48521376。思路首先刚开始的次序为1,2,3,...,7,8。

链表的合并和分解-习题1-5

第1关:两个递增有序链表合并为一个递增有序链表本关任务:编写一个递增有序链表的合并程序。#include#includeusingnamespacestd;#defineERROR0typedefstructLNode//定义单链表{ intdata; structLNode*next;}LNode,*LinkList;intnum_a,num_b;voidInitList_L(LinkList&L)//创建单链表{ L=newLNode; L->next=NULL;}voidinput(LinkList&L,intn)//依次往单链表L里输入数据{ inti; LNode*p,*r; r=L

【算法|动态规划No.17】leetcode64. 最小路径和

个人主页:兜里有颗棉花糖欢迎点赞👍收藏✨留言✉加关注💓本文由兜里有颗棉花糖原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣题目解析3️⃣解题代码1️⃣题目描述给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例1:输入:grid=[[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径1→3→1→1→1的总和最小。示例2:输入

【leetcode刷题之路】初级算法(2)——链表+树+排序和搜索+动态规划

文章目录3链表3.1【链表】删除链表中的节点3.2【双指针】删除链表的倒数第N个结点3.3【链表】反转链表3.4【链表】合并两个有序链表3.5【链表】回文链表3.6【双指针】环形链表4树4.1【递归】二叉树的最大深度4.2【递归】验证二叉搜索树4.3【递归】对称二叉树4.4【BFS】二叉树的层序遍历4.5【分治】将有序数组转换为二叉搜索树5排序和搜索5.1【排序】合并两个有序数组5.2【二分】第一个错误的版本6动态规划6.1【动态规划】爬楼梯6.2【动态规划】买卖股票的最佳时机6.3【动态规划】最大子数组和6.4【动态规划】打家劫舍3链表3.1【链表】删除链表中的节点https://leetc

数据结构之带头双向循环链表

目录链表的分类带头双向循环链表的实现带头双向循环链表的结构带头双向循环链表的结构示意图空链表结构示意图单结点链表结构示意图 多结点链表结构示意图链表创建结点双向链表初始化销毁双向链表打印双向链表 双向链表尾插尾插函数测试双向链表头插头插函数测试 双向链表尾删尾删函数测试双向链表头删头删函数测试双向链表查找双向链表pos位置前插插入函数测试 双向链表删除pos位置的结点删除函数测试利用ListInsert()函数改造头插尾插函数尾插函数改造版本头插函数改造版本利用ListEarse()函数改造头删尾删函数头删函数改造版本尾删函数改造版本计算双向链表长度链表的分类单向/双向单向列表:每一个结点结构

【强基计划】LeetCode—根据二叉树的前、中序/中、后序构造二叉树

✨哈喽,进来的小伙伴们,你们好耶!✨🍅🍅系列专栏:【强基计划】✈️✈️本篇内容: 根据二叉树的前、中序/中、后序构造二叉树!⛵⛵作者简介:一名双非本科大三在读的科班Java编程小白,道阻且长,你我同行!🍱🍱码云存放仓库gitee:Java数据结构全部代码存放!一、从前序与中序遍历序列构造二叉树给定两个整数数组 preorder和inorder ,其中 preorder是二叉树的先序遍历,inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。解题思路:本题要求我们根据前序遍历和中序遍历来构建这颗二叉树,那么思路非常简单。1、由前序遍历的第一个节点就是根节点root,首先就得到了根节点

【算法基础】数组和链表,动态数组,循环数组,链表的变种

目录1数组(Array)1.1定义和特点1.2  基本操作1.3 数组的时间复杂度1.4  应用场景2链表(LinkedList)2.1定义和特点:2.1.1 单向链表(SinglyLinkedList)2.1.2双向链表(DoublyLinkedList):2.1.3循环链表(CircularLinkedList):2.2  基本操作2.2.1创建链表:2.2.2插入节点:2.2.3删除节点2.2.4遍历链表2.3时间复杂度2.4应用场景1数组(Array)数组是一种线性数据结构,由相同类型的元素组成,每个元素通过索引来访问。元素在内存中是连续存储的。数组的大小通常在创建时固定,不易扩展或缩