草庐IT

leetcode题解

全部标签

LeetCode-复制带随机指针的链表

题目描述:给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有X和Y两个节点,其中X.random-->Y。那么在复制链表中对应的两个节点x和y,同样有x.random-->y。返回复制链表的头节点。用一个由 n 个节点组成的链表来表示输入/输出中的

leetcode链表题报错 runtime error: member access within null pointer of type ‘ListNode‘

今天在做leetcode203:移除链表元素时,反复遇到了报错:runtimeerror:memberaccesswithinnullpointeroftype‘ListNode’(solution.cpp),报错提示的意思是试图访问’ListNode空指针类型的成员,就浅浅记录一下修复bug的过程吧。。。。刚开始的代码是这样的,逻辑是先建立一个头结点放到链表头部,这样就可以统一链表结点删除的操作了,然后创建ListNode类型指针cur,初始化其指向头结点的下一个结点,利用while循环遍历链表,当cur指针指向Null时停止遍历。然后就报错了…classSolution{public:Li

(动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

❓剑指Offer48.最长不含重复字符的子字符串难度:中等请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入:“abcabcbb”输出:3解释:因为无重复字符的最长子串是“abc”,所以其长度为3。示例2:输入:“bbbbb”输出:1解释:因为无重复字符的最长子串是“b”,所以其长度为1。示例3:输入:“pwwkew”输出:3解释:因为无重复字符的最长子串是“wke”,所以其长度为3。请注意,你的答案必须是子串的长度,“pwke”是一个子序列,不是子串。提示:s.length注意:本题与3.无重复字符的最长子串相同。💡思路:动态规划定义dp数组,dp[i

Leetcode刷题笔记——单调性

单调性单调性是数学中使用的一种常见性质,通常用于描述函数,在高等数学中的定义常常为:设函数f(x)在区间I上有定义,如果对于I上的任意两个数x1和x2,当x1f(x2)),则称函数f(x)在区间I上是单调递增的(或者单调递减的)。例如如下图像就是两个单调函数。利用单调性我们可以减少很多重复的运算。例如,对于如下函数,我们给定其定义域为[0,+∞),现在要求查找出在其定义域内所有f(x)即y大于0.5的区间。如果不借助单调性,我们需要采用遍历的方法,依次遍历定义域中的所有点x,判断其f(x)是否满足条件(大于0.5)。如果借助单调性,我们知道上述函数是严格单调递增的,其图像如下:绿线表示y=0.

每天一道leetcode:934. 最短的桥(图论&中等&广度优先遍历)

今日份题目:给你一个大小为nxn的二元矩阵grid,其中1表示陆地,0表示水域。岛是由四面相连的1形成的一个最大组,即不会与非组内的任何其他1相连。grid中恰好存在两座岛。你可以将任意数量的0变为1,以使两座岛连接起来,变成一座岛。返回必须翻转的0的最小数目。示例1输入:grid=[[0,1],[1,0]]输出:1示例2输入:grid=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3输入:grid=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1提示n==grid.length==grid[i]

C语言好题解析(四)

目录选择题一选择题二选择题三选择题四选择题五编程题一选择题一已知函数的原型是:intfun(charb[10],int*a);设定义:charc[10];intd;,正确的调用语句是()A:fun(c,&d);B:fun(c,d);C:fun(&c,&d);D:fun(&c,d);【答案】A【分析】数组:在传参时我们需要注意参数类型,对于数组而言,传参时我们可以直接省略[]和里面的数字指针:当传参时为指针时,我们就需要注意了,指针int*a表示传入参数为整形类型的指针地址,因此表示整形地址则需&和整形类型的元素d选择题二请问下列表达式哪些会被编译器禁止【多选】()inta=248,b=4;in

算法leetcode|74. 搜索二维矩阵(rust重拳出击)

文章目录74.搜索二维矩阵:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:74.搜索二维矩阵:给你一个满足下述两条属性的mxn整数矩阵:每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target,如果target在矩阵中,返回true;否则,返回false。样例1:输入: matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],target=3 输出: true样例2:输入: matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],t

【数据结构】如何用栈实现队列?图文解析(LeetCode)

LeetCode链接:232.用栈实现队列-力扣(LeetCode)注:本文默认读者已掌握栈与队列的基本操作可以看这篇文章熟悉知识点:【数据结构】栈与队列_字节连结的博客-CSDN博客目录做题思路代码实现1.MyQueue2.myQueueCreate3.myQueuePush4.myQueuePeek5.myQueuePop6.myQueueEmpty7.myQueueFree全部代码做题思路简单来说,就是把一个栈(栈1)的数据捯入另一个栈(栈2),此时(栈2)出数据的顺序就和队列是一样的。为了更方便理解,我会画图来演示一下具体思路。我们需要两个栈来实现队列:push栈:专门入数据的栈pop

LeetCode:二叉树的前、中、后序遍历——如何创建一棵【二叉树】

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123文章目录一、🌻二叉树1.简介2.种类3.构造与遍历二叉树的构造二叉树的遍历二、🍀LeetCode:二叉树的前、中、后序遍历🌴解题1.先序遍历2.中序遍历3.后序遍历一、🌻二叉树1.简介二叉树是一种树形数据结构,其每个节点最多只有两个子节点。通常将节点分为三种类型:根节点、内部节点和叶子节点。其中,根节点是二叉树的唯一访问起点,内部节点具有一个父节点和两个子节点,而叶子节点没有子节点。二叉树的底层数据结构可以使用链表或数组来实现。二叉树的应用非常广泛,例如在计算机科学中,二叉树是许多数据结构的基础,例如二叉搜索树、红黑树

(搜索) 剑指 Offer 12. 矩阵中的路径 ——【Leetcode每日一题】

❓剑指Offer12.矩阵中的路径难度:中等给定一个m*n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的3×4的矩阵中包含单词"ABCCED"(单词中的字母已标出)。示例1:输入:board=[[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]],word=“ABCCED”输出:true示例2:输入:board=[[“a”