
数据结构
文章平均质量分 78
小白找兔子
这个作者很懒,什么都没留下…
展开
-
leetcode的20题:有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。提示:1 <= s.length <= 10^4s 仅由括号 ‘()[]{}’ 组成示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:原创 2021-03-12 00:18:28 · 277 阅读 · 0 评论 -
leetcode的14题:最长公共前缀
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题思路先拿出一个字符串,然后取这个字符串的头一个字母,例如a,判断数组内其他字符串是否以这个字母开头,不是的话直接返回空字符串“”,是的话拿出字符串的头两个字符原创 2020-12-27 14:33:15 · 163 阅读 · 0 评论 -
javascript实现稀疏数组和普通二维数组的相互转换
场景棋盘游戏中,往往需要进行存档和读档,当棋盘上的棋子较多时,使用二维数组存储棋盘上棋子的位置和数量是一个不错的选择,但是,但棋子较少时,再用二维数组存储就比较浪费空间,这个时候就可以用稀疏数组来进行保存。什么是稀疏数组稀疏数组是一个有规定数据存储结构的二维数组,主要用来记录类似上面一个大部分元素为0或同一个值(以下统称为不为0)的二维数组,每一个稀疏数组的列数只有3列,行数则由有多少个不同的数决定。它的第一行记录了二维数组的行数,列数,不为0的个数,从第二列开始则记录各个不为0数的位置(行和列)和原创 2020-12-23 00:15:03 · 271 阅读 · 0 评论 -
leetcode的第7题:整数反转
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解题思路“翻转”两个字提醒了我一个数组方法reverse(),因此我以此为出发点进行分析,首先需判断传入的数字是正数还是负数,如果为原创 2020-12-18 21:39:06 · 238 阅读 · 1 评论 -
从单向链表结构看空间复杂度换时间复杂度
最近在复习数据结构,在手写单向链表结构的时候,清晰的感觉到一个合理的数据结构在使用起来,真的事半功倍。下面就我自己的感受说说我对内存空间换取降低操作数据时的时间复杂度的一点浅见。首先单向链表的结构可以简单的表示为:头结点是节点1的引用,而节点1的next属性又是节点2的应用,以此类推,最后一个节点的next属性则指向一个空对象。在手写该链表的append(data)方法时,我首先需要根据data创建一个新节点newNode(属性next默认为null),data就是上图所示的item,然后我需要找到原创 2020-08-01 23:51:09 · 1542 阅读 · 1 评论