目录编辑题一:链表分割思路一:题二:相交链表思路一:题三:环形链表 思路一:题四:链表的回文结构思路一:链表反转:查找中间节点:本人实力有限可能对一些地方解释的不够清晰,可以自己尝试读代码,望海涵!题一:链表分割现有一链表的头指针ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。思路一:1.分别创建一个记录小于x的“小”结构体,和记录大于等于x的“大”结构体,2.然后malloc函数动态开辟一个结构体大小的空间,这时head和tail都指向同一位置,将phead->val与x比较,小于想,放入l
题一:旋转数组给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 思路一:创建reverse()函数传入三个值分别为数组地址,从第几个数组元素开始,结束元素位置;在reverse()函数中实现颠倒,swap()函数实现交换。先将数组分为两部分0--(k-1)和k--(sz-1),然后分别旋转;//交换位置voidswap(int*a,int*b){intt=*a;*a=*b,*b=t;}//实现颠倒voidreverse(int*nums,intstart,intend){while(start思路二:如图:voidrotate(int*nums,intnum
题一:删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。返回 k 。思路一:暴力求解,直接定义一个int类型取不到的数,让这个数去判断与其他的数是否相同,相同不理会,不相同赋值到【left
大家好,我是空空star,本篇带大家了解一道困难难度(实际很简单)的力扣sql练习题。文章目录前言一、题目:262.行程和用户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言一、题目:262.行程和用户表:Trips+-------------+----------+|ColumnName|Type|+-------------+----------+|id|int||client_id|int||driver_id|int||city_id|int||status|enum||reques
文章目录题目描述解法一动态规划题目描述解法一动态规划intmaxSubArray(vectorint>&nums){ intpre=0,res=nums
【力扣】61.旋转链表(每个节点向右移k个单位)给你一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。示例1:输入:head=[1,2,3,4,5],k=2输出:[4,5,1,2,3]示例2:输入:head=[0,1,2],k=4输出:[2,0,1]提示:链表中节点的数目在范围[0,500]内-100010910^9109题解classListNode{intval;ListNodenext;ListNode(){}ListNode(intval){this.val=val;}ListNode(intval,ListNodenext){this.val=val;this.ne
文章目录20.有效的括号原题链接:解题思路:实现代码:题目总结:1047.删除字符串中的所有相邻重复项原题链接:解题思路:实现代码:题目总结150.逆波兰表达式求值原题链接:解题思路:实现代码:题目总结:20.有效的括号原题链接:解题思路:先找出所有需要处理的不同种类的情况:然后尝试自己的思考,然后采用一种思路处理以上的三种情况。建立一个栈,然后遍历字符串s;每次遍历到一个字符,进行一次判断,如果当前字符是左括号,则将其压入栈中。如果当前字符是右括号,则弹出栈顶元素,看当前栈顶元素是否与其配对。为什么要弹出栈顶的元素与当前的右括号配对呢?因为观察上述的3种情况,无论是嵌套的括号(第三种),还是
目录前言:198.打家劫舍-力扣(LeetCode)213.打家劫舍II-力扣(LeetCode) 总结:前言:我们今天继续刷动态规划的题,希望大家可以和我一起坚持下去。198.打家劫舍-力扣(LeetCode)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。 解题思路:我们要先快速确定出这道题的解题方向,我们读题后发现:当前房间偷不偷,取决于它前一个房间有
一、题目描述给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。 示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,101],因此长度为4。示例2:输入:nums=[0,1,0,3,2,3]输出:4示例3:输入:nums=[7,7,7,7,7,7,7]输出:1 提示:1-104 进阶:你能将算法的时间复杂度降低到 O(nlog(n))吗?二、思路讲解 用dp[i]表示以
力扣-图论深度优先搜索剑指OfferII111.计算除法我的题解:**思路:*字符串a/b=2.0,b/c=3.0可以求:b/c=3.0,c/b=1.0/3.0,因此我们可以将a/b描述为从a到b的一条边,这样就抽象画出一张图,我们将所有的点与权值加入图中,然后遍历queries首先看这两个字符是否包含在图中若没有则不需要搜索,直接将该点赋为-1.0,若两个点都在图中,且都是同一个点,那么自己到自己,将该点赋为1.0,其它情况我们进行深度优先搜索对图进行遍历,我们每访问一个节点就对该节点进行标记,去搜索与该节点连接的节点,若是目标节点就直接返回,若找到目标节点,即该路径存在就返回该路径的值*当