草庐IT

Leetcode

全部标签

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]

算法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”

Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】

题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0,0]的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格[35,37],因为3+5+3+7=18。但它不能进入方格[35,38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例1:输入:m=2,n=3,k=1输出:3示例2:输入:m=3,n=1,k=0输出:1提示:10解题思路1.题目要求我们求出机器人能够到达多少个格子,对于这道题我们依旧采用深度优先搜索来解决。2.首先

LeetCode 138.复制带随机指针的链表

文章目录💡题目分析💡解题思路🚩步骤一:拷贝节点插入到原节点的后面🍩步骤一代码🚩步骤二:控制拷贝节点的random进行连接🍩步骤二代码🚩步骤三:拷贝节点解下来尾插组成拷贝链表,恢复原链表🍩步骤三代码🔔接口源码题目链接👉LeetCode138.复制带随机指针的链表👈💡题目分析给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链