随笔分类 - 算法刷题
摘要:leetcode160.相交链表 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 用例 求解 /** * Definition for singly-linked list. * function L
阅读全文
摘要:leetcode155.最小栈 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 用例 输入:
阅读全文
摘要:leetcode152.乘积最大子数组 题目 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 用例 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 输入: [-2,0,-1] 输出:
阅读全文
摘要:leetcode148.排序链表 题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 用例 输入:head = [4,2,1,3] 输出:[1,2,3,4] 输入:head =
阅读全文
摘要:leetcode146.LRU缓存机制 题目 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关
阅读全文
摘要:leetcode141.环形链表 题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是
阅读全文
摘要:leetcode139.单词拆分 题目 给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定 s 是否可以由空格拆分为一个或多个在字典中出现的单词。 说明:拆分时可以重复使用字典中的单词。 用例 输入: s = "leetcode", wordDict = ["leet", "co
阅读全文
摘要:leetcode136.只出现一次的数字 题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 用例 输入: [2,2,1] 输出: 1 输入: [4,1,2,1,2]
阅读全文
摘要:leetcode128.最长连续序列 题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 用例 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是
阅读全文
摘要:leetcode124.二叉树中的最大路径和 题目 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回
阅读全文
摘要:leetcode121.买卖股票的最佳时机 题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中
阅读全文
摘要:leetcode114.二叉树展开为链表 题目 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 用例 输入:ro
阅读全文
摘要:leetcode105.从前序与中序遍历序列构造二叉树 题目 给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。 用例 Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] Output: [3
阅读全文
摘要:leetcode104.二叉树的最大深度 题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 用例 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大
阅读全文
摘要:leetcode102.二叉树的层序遍历 题目 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 用例 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [
阅读全文
摘要:leetcode101.对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的。 用例 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的。 1 / \ 2 2 \
阅读全文
摘要:leetcode98.验证二叉搜索树 题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 用例 输入:root = [
阅读全文
摘要:leetcode96.不同的二叉搜索树 题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 用例 输入:n = 3 输出:5 输入:n = 1 输出:1 求解 /** * @param {number} n *
阅读全文
摘要:leetcode94.二叉树的中序遍历 题目 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 用例 输入:root = [1,null,2,3] 输出:[1,3,2] 输入:root = [] 输出:[] 输入:root = [1] 输出:[1] 输入:root = [1,2] 输出:[
阅读全文
摘要:leetcode85.最大矩形 题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 用例 输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1",
阅读全文

浙公网安备 33010602011771号