
LeetCode
文章平均质量分 60
主要以LeetCode平台的一些题进行讲解
林夕07
从事Windows桌面开发,GIS平台的二次开发,地图服务、仿真等等。日常分享一些使用技巧。曾获得新星计划第三季人工智能赛道TOP5;阿里云专家博主
展开
-
力扣 - 106、从中序与后序遍历序列构造二叉树
题目 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 分析 本题与剑指Offer - 面试题7:重构二叉树 (力扣 - 105、从前序与中序遍历序列构造二叉树)思想类似,之前是在前序中从前到后找根,现在是在后序中从后向前找根 递归 C++原创 2021-05-11 20:32:09 · 310 阅读 · 0 评论 -
剑指Offer - 面试题7:重构二叉树 (力扣 - 105、从前序与中序遍历序列构造二叉树)
题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如:输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树如下图。返回该二叉树的头节点。 3 / \ 9 20 / \ 15 7 二叉树定义如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryT原创 2021-05-11 12:14:10 · 389 阅读 · 0 评论 -
力扣 - LCP 18. 早餐组合
题目 小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。 注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1 示例 1: 输入:staple = [10,20,5], drinks = [5,5,2], x = 15 输出:6 解释:小扣有 6 种购买方案,所选主食原创 2021-07-07 21:23:22 · 606 阅读 · 3 评论 -
力扣 - 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] 内 -100 <= Node.val <= 100 进阶:递归算法很原创 2021-05-07 22:04:58 · 287 阅读 · 2 评论 -
力扣 - 1、俩数之和
题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 输出:[原创 2021-04-05 11:04:07 · 145 阅读 · 0 评论 -
力扣 - 234、回文链表
题目 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-linked-list 分析 数组+双指针 我们可以先遍历一遍计算出长度,然后再创建数组,再遍历一遍把节点数据放入数组中,然后在数组俩头原创 2021-04-26 13:12:36 · 311 阅读 · 0 评论 -
力扣 - 2、俩数相加
题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,9,9,9,9,9], l原创 2021-04-06 11:27:23 · 210 阅读 · 0 评论 -
力扣 - 102、二叉树的层序遍历(剑指Offer - 面试题32:从上到下打印二叉树)
题目 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。(有改动) 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 输出层序遍历的结果 3 9 20 15 7 分析 迭代法 用一个队列来存储当前层数的节点地址,每次从队列头部取出一个节点,然后判断是否为NULL,若不为空则输出当前节点,并把左右子节点存入队列尾部。直到队列中没有元素为止。因为这里拿c语言实现,所以用数组原创 2021-05-07 22:52:21 · 246 阅读 · 0 评论