
重学算法与数据结构
刷刷算法题 防止老年痴呆
LzhSweeterSmile
我是图图小淘气 面对世界好好奇
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重学算法与数据结构系列 Java 剑指 Offer 31. 栈的压入、弹出序列
剑指 Offer 31. 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行: push(1)原创 2021-02-06 21:56:09 · 105 阅读 · 0 评论 -
重学算法与数据结构系列 Java 剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.t原创 2021-02-06 19:05:18 · 78 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 232. 用栈实现队列
232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false 说明: 你只能使用标准的栈操作 —— 也就是只有push to top,peek/po..原创 2021-02-06 17:49:23 · 93 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 20. 有效的括号
20. 有效的括号 给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = "()" 输出:true 示例2: 输入:s = "()[]{}" 输出:true 示例3: 输入:s = "(]" 输出:false 示例4: 输入:s = "([)]" 输出:false 示例5: 输入:s = "{[]}...原创 2021-02-06 17:24:33 · 91 阅读 · 0 评论 -
重学算法与数据结构系列 Java 剑指 Offer 55 - I. 二叉树的深度
剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度3 。 /** * Definition for a binary tree node. * public class TreeNode { *.原创 2020-11-03 01:07:10 · 163 阅读 · 0 评论 -
重学算法与数据结构系列 Java 剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - II. 从上到下打印二叉树 II 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] class Solution { public List<List<Integer>>.原创 2020-11-02 22:18:00 · 222 阅读 · 0 评论 -
重学算法与数据结构系列 Java 剑指 Offer 32 - I. 从上到下打印二叉树
剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] class Solution { public int[] levelOrder(TreeNode root) { if (root == null) .原创 2020-11-02 21:26:55 · 713 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 144. 二叉树的前序遍历
144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的前序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[1,2] 示例 5: 输入:root = [1,null,2] 输出:[1,2] 提示: 树中节点数目在范围 [0, 100] ..原创 2020-11-01 17:09:56 · 124 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 226. 翻转二叉树
226. 翻转二叉树 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tr原创 2020-10-31 20:19:52 · 181 阅读 · 1 评论 -
重学算法与数据结构系列 Java 剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 /** * Definition for singly-linked list. * public class ListNode { * int val原创 2020-10-31 19:32:03 · 99 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 704. 二分查找
704. 二分查找 给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例2: 输入: nums = [-1,0,3,5,9,12], target = 2 输出: -1 解释: 2 不存在 nums 中因此返回 -1 ...原创 2020-10-31 14:02:47 · 263 阅读 · 1 评论 -
重学算法与数据结构系列 Java LeetCode 509. 斐波那契数
509. 斐波那契数 斐波那契数,通常用F(n) 表示,形成的序列称为斐波那契数列。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1)= 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定N,计算F(N)。 示例 1: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1. 示例 2: 输入:3 输出:2 解释:F(3) = F(2) + ...原创 2020-10-31 11:59:45 · 106 阅读 · 0 评论 -
重学算法与数据结构系列 Java 剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输入: ["CQueue".原创 2020-10-31 11:55:12 · 83 阅读 · 0 评论 -
重学算法与数据结构系列 Java LeetCode 1. 两数之和
1. 两数之和 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] class Solution { public int[] twoSum(int[] num...原创 2020-08-15 16:29:40 · 136 阅读 · 0 评论 -
重学算法与数据结构系列 Swift LeetCode 70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶 来源:力扣(LeetCode) 链接:https://leetc...原创 2020-07-15 15:54:04 · 165 阅读 · 0 评论