文章分类 -  数据结构

摘要:151. 颠倒字符串中的单词 - 力扣(LeetCode) 题外话 这道题一开始是按自己的思路去走,发现走不通,看看其他人的解法,其他人的解法是: 解题思路如下: 移除多余空格 将整个字符串反转 将每个单词反转 举个例子,源字符串为:"the sky is blue " 移除多余空格 : "the 阅读全文
posted @ 2022-05-25 23:28 jason饼干大怪兽 阅读(32) 评论(0) 推荐(0)
摘要:剑指 Offer 05. 替换空格 - 力扣(LeetCode) 思路 使用一个新的对象,复制 str,复制的过程对其判断,是空格则替换,否则直接复制,类似于数组复制我这里的想法是,将字符串分割成一个个char数组,然后对char数组进行遍历,是‘ ’就替换为%20;否则直接append(item) 阅读全文
posted @ 2022-05-25 17:32 jason饼干大怪兽 阅读(27) 评论(0) 推荐(0)
摘要:541. 反转字符串 II - 力扣(LeetCode) 题外话 这道题一开始我纠结比较久,虽然是容易题,也证明了我菜,但没关系,我要想办法拿下。这道题可以理解成模拟,实现题目中规定的反转规则就可以了。 思路 1、反转函数 2、判断反转区间:反转函数就需要到双指针,双指针的位置要把握好 起始指针:0 阅读全文
posted @ 2022-05-25 17:11 jason饼干大怪兽 阅读(24) 评论(0) 推荐(0)
摘要:344. 反转字符串 - 力扣(LeetCode) 题外话 这道题有在笔试题中出现,算是一道比较容易的开胃菜。 对于这道题目一些同学直接用C++里的一个库函数 reverse,调一下直接完事了, 相信每一门编程语言都有这样的库函数。 如果这么做题的话,这样大家不会清楚反转字符串的实现原理了。 但是也 阅读全文
posted @ 2022-05-25 16:59 jason饼干大怪兽 阅读(34) 评论(0) 推荐(0)
摘要:515. 在每个树行中找最大值 - 力扣(LeetCode)、 1、思路 层序遍历,取每一层的最大值,这道题主要是补充自己获取最大值的方法技巧。 2、代码 /** * Definition for a binary tree node. * public class TreeNode { * int 阅读全文
posted @ 2022-05-23 22:58 jason饼干大怪兽 阅读(29) 评论(0) 推荐(0)
摘要:199. 二叉树的右视图 - 力扣(LeetCode) 1、题外话 二叉树的右视图,一开始以为只要右子树就可以了,其实是不对的,举个例子【1,2】,那么是头节点的左子节点,从右边看过去,是【1,2】,如果只保留了右子节点,那么就只有【1】,这样是不对的。 2、思路 层序遍历的时候,判断是否遍历到单层 阅读全文
posted @ 2022-05-23 22:47 jason饼干大怪兽 阅读(21) 评论(0) 推荐(0)
摘要:107. 二叉树的层序遍历 II - 力扣(LeetCode) 思路: 相对于102.二叉树的层序遍历,就是最后把result数组反转一下就可以了。 /** * Definition for a binary tree node. * public class TreeNode { * int va 阅读全文
posted @ 2022-05-23 22:09 jason饼干大怪兽 阅读(18) 评论(0) 推荐(0)
摘要:102. 二叉树的层序遍历 - 力扣(LeetCode) 1、题外话 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。 需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑。 2、思路 分两步走吧,先能够获取一个层序遍历后的集合 阅读全文
posted @ 2022-05-23 21:47 jason饼干大怪兽 阅读(29) 评论(0) 推荐(0)
摘要:144. 二叉树的前序遍历 - 力扣(LeetCode) 94. 二叉树的中序遍历 - 力扣(LeetCode) 145. 二叉树的后序遍历 - 力扣(LeetCode) 二叉树的遍历: 前序:中左右; 中序:左中右; 后序:左右中; 思路 采用递归的方法, 代码 前序遍历: /** * Defin 阅读全文
posted @ 2022-05-23 18:51 jason饼干大怪兽 阅读(23) 评论(0) 推荐(0)
摘要:347. 前 K 个高频元素 - 力扣(LeetCode) 思路 这道题目主要涉及到如下三块内容: 要统计元素出现频率 对频率排序 找出前K个高频元素 1、对元素出现的频率可以采用Map来统计 2、对频率排序可以用优先队列进行排序,优先队列的底层是小根堆或大根堆。PriorityQueue<> pr 阅读全文
posted @ 2022-05-23 15:09 jason饼干大怪兽 阅读(49) 评论(0) 推荐(0)
摘要:150. 逆波兰表达式求值 - 力扣(LeetCode) 1、题外话 逆波兰表达式:是一种后缀表达式,所谓后缀就是指算符写在后面。 平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 ) 。 该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * ) 。 阅读全文
posted @ 2022-05-22 18:28 jason饼干大怪兽 阅读(32) 评论(0) 推荐(0)
摘要:1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode) 1、题外话 这道题目就像是我们玩过的游戏对对碰,如果相同的元素放在挨在一起就要消除。 可能我们在玩游戏的时候感觉理所当然应该消除,但程序又怎么知道该如果消除呢,特别是消除之后又有新的元素可能挨在一起。 此时游戏的后端逻辑就可以用 阅读全文
posted @ 2022-05-22 18:01 jason饼干大怪兽 阅读(33) 评论(0) 推荐(0)
摘要:20. 有效的括号 - 力扣(LeetCode) 1、括号匹配是使用栈解决的经典问题。 题意其实就像我们在写代码的过程中,要求括号的顺序是一样的,有左括号,相应的位置必须要有右括号。 如果还记得编译原理的话,编译器在 词法分析的过程中处理括号、花括号等这个符号的逻辑,也是使用了栈这种数据结构。 再举 阅读全文
posted @ 2022-05-22 17:38 jason饼干大怪兽 阅读(26) 评论(0) 推荐(0)
摘要:232. 用栈实现队列 - 力扣(LeetCode) 1、使用栈实现队列的下列操作: push()-- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。 2、思路: 主要在弹出元素方法中,栈的方式是先进后 阅读全文
posted @ 2022-05-22 17:22 jason饼干大怪兽 阅读(9) 评论(0) 推荐(0)
摘要:225. 用队列实现栈 - 力扣(LeetCode) 1、使用队列实现栈的下列操作: offer(x) -- 元素 x 入栈 poll() -- 移除栈顶元素 peek() -- 获取栈顶元素 isEmpty() -- 返回栈是否为空 2、思路: 主要在添加元素方法中,队列的方式是先进先出,栈的方式 阅读全文
posted @ 2022-05-21 23:15 jason饼干大怪兽 阅读(26) 评论(0) 推荐(0)
摘要:1.递归应用场景 实际应用场景,迷宫问题(回溯)、八皇后问题、快速排序、 递归(Recursion) 2.递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 3.递归需要遵守的重要规则 1) 执行一个方法时,就创建一个 阅读全文
posted @ 2022-05-08 18:52 jason饼干大怪兽 阅读(48) 评论(0) 推荐(0)
摘要:一、栈介绍 1)栈的英文为(stack) 2) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 3) 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为 阅读全文
posted @ 2022-05-06 21:18 jason饼干大怪兽 阅读(175) 评论(0) 推荐(0)
摘要:一、 管理单向链表的缺点分析: 1) 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 2) 单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到 temp,temp 是待删除节点的前一个节点. 二、 双向链表如何完成遍历,添 阅读全文
posted @ 2022-05-06 08:34 jason饼干大怪兽 阅读(27) 评论(0) 推荐(0)
摘要:一、链表是有序的列表,但是它在内存中是存储如下: 1) 链表是以节点的方式来存储,是链式存储 2) 每个节点包含 data 域, next 域:指向下一个节点. 3) 如图:发现链表的各个节点不一定是连续存储. 4) 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定 5) 各个节点是分散 阅读全文
posted @ 2022-05-05 15:54 jason饼干大怪兽 阅读(57) 评论(0) 推荐(0)