随笔分类 -  leetcode

摘要:度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 代码: /** * Definition for a Node. * struct Node { * int val; * int numChildren; * struct Node** 阅读全文
posted @ 2020-10-29 13:53 进寸欢喜 阅读(98) 评论(0) 推荐(0)
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 代码: bool isSymmetr 阅读全文
posted @ 2020-10-20 11:31 进寸欢喜 阅读(76) 评论(0) 推荐(0)
摘要:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉 阅读全文
posted @ 2020-10-20 10:59 进寸欢喜 阅读(94) 评论(0) 推荐(0)
摘要:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 思路: 建立一个队列去保存二叉树中每 阅读全文
posted @ 2020-10-20 09:17 进寸欢喜 阅读(74) 评论(0) 推荐(0)
摘要:三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法示例2: 输入:n = 5 输出:13提示: n范围在[1, 1000 阅读全文
posted @ 2020-09-30 10:42 进寸欢喜 阅读(116) 评论(0) 推荐(0)
摘要:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 阅读全文
posted @ 2020-09-28 16:52 进寸欢喜 阅读(90) 评论(0) 推荐(0)
摘要:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的 阅读全文
posted @ 2020-09-28 15:57 进寸欢喜 阅读(100) 评论(0) 推荐(0)
摘要:题目描述: 实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。 示例: 输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f 思路: 因为给的不是头结点,而是要删除的节点 我的想法是首先创建一 阅读全文
posted @ 2020-08-24 22:36 进寸欢喜 阅读(135) 评论(0) 推荐(0)
摘要:题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 1 阅读全文
posted @ 2020-08-19 22:35 进寸欢喜 阅读(119) 评论(0) 推荐(0)
摘要:题目描述: 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Refere 阅读全文
posted @ 2020-07-27 11:45 进寸欢喜 阅读(110) 评论(0) 推荐(0)
摘要:题目描述: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 代码: 迭代法 /** * Definition for singly-linked list. * struc 阅读全文
posted @ 2020-07-22 10:16 进寸欢喜 阅读(135) 评论(0) 推荐(0)
摘要:题目描述: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 阅读全文
posted @ 2020-07-21 11:06 进寸欢喜 阅读(99) 评论(0) 推荐(0)
摘要:题目描述: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该 阅读全文
posted @ 2020-07-21 09:51 进寸欢喜 阅读(130) 评论(0) 推荐(0)
摘要:题目描述: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 想用栈的方法来实现,可是我目前还没有做很多栈的题,水平有限 以下是我写的错误的栈的代码: /** * Definition for singly-l 阅读全文
posted @ 2020-07-20 11:05 进寸欢喜 阅读(94) 评论(0) 推荐(0)
摘要:题目描述: 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 1: 输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5) 思路: 题目和我想的有 阅读全文
posted @ 2020-07-17 16:21 进寸欢喜 阅读(149) 评论(0) 推荐(0)
摘要:题目描述: 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我 阅读全文
posted @ 2020-07-17 11:37 进寸欢喜 阅读(122) 评论(0) 推荐(0)
摘要:题目描述: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 思路: 我自作聪明的以为这个题目怎么这么简单,细细一看它给的节点不是头结点,而是就要删除的那个节点 那么思路就应该是把下一个节 阅读全文
posted @ 2020-07-16 11:10 进寸欢喜 阅读(125) 评论(0) 推荐(0)
摘要:题目描述: 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true思路:刚开始的时候想错了,以为只有中间有重复出现的元素才能是回文串如果题目是数组,不是链表那么这个问题解决起来就会比较容易所以我采用了一种最笨的办法 阅读全文
posted @ 2020-07-16 10:47 进寸欢喜 阅读(99) 评论(0) 推荐(0)
摘要:题目描述:删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5解题思路:因为这是一道容易题,刚拿到题目就按照我设想的思路往下写,我的思路就是遍历,判断值是否相等,相等则让其下一个指针重新指向下下一个元 阅读全文
posted @ 2020-07-14 17:09 进寸欢喜 阅读(162) 评论(0) 推荐(0)
摘要:编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference 阅读全文
posted @ 2020-07-13 16:53 进寸欢喜 阅读(164) 评论(0) 推荐(0)