分类: 算法

5 篇文章

thumbnail
队列和Hash
队列和Hash 1. LeetCode 232. 用栈实现队列 题目地址:LeetCode 解题思路: 加入队尾 push() : 将数字 val 加入栈 A 即可 获取队首元素 peek() : ​ a. 当栈 B 不为空: B 中仍有已完成倒序的元素,因此直接返回 B 的栈顶元素 ​ b. 否则,当 A 为空: 即两个栈都为空,无元素,因此返回…
thumbnail
二叉树
二叉树 1. LeetCode 102. 二叉树的层序遍历 题目地址:LeetCode [ [3], [9,20], [15,7] ] 解题思路: 特例处理:当根节点为空,则返回空列表[] 初始化:打印结果列表res = [],包含根节点的队列 queue = [root] BFS 循环:当队列 queue 为空时跳出 ​ a. 新建一个临时列表 …
thumbnail
栈 1. LeetCode 20. 有效的括号 题目地址:LeetCode 解题思路: 创建一个栈(这里用 Stack<Character> 类型的 stack 变量)用来存储遍历过程中遇到的开括号; 遍历输入字符串 s 中的每个字符 c; 如果 c 是开括号('('、'{' 或 '['),则将其压入栈 stack; 如果 c 是闭括号…
thumbnail
数组
数组 1. LeetCode 896. 单调数列 题目地址:LeetCode /** * 一次遍历 * * @param nums * @return */ public boolean isMonotonic(int[] nums) { boolean inc = true, dec = true; int n = nums.length; fo…
thumbnail
链表
链表 1. 剑指 Offer 52. 两个链表的第一个公共节点 题目地址:LeetCode 注意: 如果两个链表没有交点,返回null 在返回结果后,两个链表仍须保持原有的结构 可假定整个链表结构中没有循环 程序尽量满足O(n)时间复杂度,且仅用O(1)内存 解题思路: 只有当链表headA和headB都不为空时,两个链表才可能相交。因此首先判断链…