09 2022 档案
摘要:二叉树的最大深度 一、题目描述 给定一个二叉树,找出其最大深度。二叉树的最大深度为根节点到最远叶子节点的最长路径上的节点数。叶子节点时没有字节点的。 实例: 给定二叉树 [3,9,20,null,null,15,7], 返回:3 二、解题思路 遍历整个树,使用一个计数器每遍历一个节点加一。先遍历左子
阅读全文
摘要:对称二叉树 一、题目描述 给一个二叉树的根节点root,检查它是否为轴对称。 实例 输入:root = [1,2,2,3,4,4,3] 输出:true 输入:root = [1,2,2,null,3,null,3] 输出:false 二、解题思路 树是轴对称,遍历树,右子树要和左子树镜像对称。 三、
阅读全文
摘要:相同的两数 ##一、题目描述 给两个树的根节点p和q,编写一个函数来验证这两个数树是否相同。如果这两个数相同,结构上相同且节点的值也相同。 实例: 输入:p = [1,2,3], q = [1,2,3] 输出:true 输入:p = [1,2], q = [1,null,2] 输出:false 输入
阅读全文
摘要:按照频率将数组升序排序 一、题目描述 给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。 请你返回排序后的数组。 实例: 输入:nums = [1,1,2,2,2,3] 输出:[3,1,1,2,2,2] 解释:'3' 频
阅读全文
摘要:二叉树的中序遍历 一、给定一个二叉树root,返回它的中序遍历。 实例 输入:root = [1,null,2,3] 输出:[1,3,2] 二、题目分析 这里的二叉树的中序遍历就是,左,中,右的来遍历这个数。从这个树的最深处的左子叶开始遍历。按照左,中,右遍历。这是一个天然的递归。 三、解题思路 方
阅读全文
摘要:两个字符串之间的最长子字符长度 一、题目描述 给定一个字符串s,返回两个相同字符之间的最长子字符串的长度,如果不存在则返回-1; 示例: 输入:s = "aa" 输出:0 解释:最优的子字符串是两个 'a' 之间的空子字符串。 输入:s = "abca" 输出:2 解释:最优的子字符串是 "bc"
阅读全文
摘要:搜索插入位置 一、题目描述 给定一个有序数组。需要插入一个元素。返回插入索引。 请必须使用时间复杂度为 O(log n) 的算法。 实例 输入: nums = [1,3,5,6], target = 5 输出: 2 输入: nums = [1,3,5,6], target = 2 输出: 1 输入:
阅读全文
摘要:删除排序链表中的重复元素 一、题目描述 给定一个已排序的链表头head,删除所有的重复的元素,使每个元素只能出现依次。返回已排序的连链表。 实例 输入:head = [1,1,2] 输出:[1,2] 输入:head = [1,1,2,3,3] 输出:[]1,2,3] 二、题目分析 链表的形式,删除相
阅读全文
摘要:爬楼梯 一、题目描述 有n阶楼梯需要爬,每一次只能爬一阶楼梯,或者两阶楼梯。爬到n阶一共有多少方案。 实例: 输入:n = 2 输出:2 1. 1 阶 + 1 阶 2. 2 阶 输入:n = 3 输出:3 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶 二、
阅读全文
摘要:x的平方根 一、题目描述 给一个非负整数x。计算并返回x的平方根。返回结果是整数,结果只保留整数部分,小数部分被舍去。 **注意:**不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 二、题目分析 将x开平方并保留整数返回。k*k= x,求k。 三、解题思路
阅读全文
摘要:二进制求和 一、题目描述 给定二进制两个字符串返回它们的和用二进制表示。 实例 输入: a = "11", b = "1" 输出: "100" 输入: a = "1010", b = "1011" 输出: "10101" 二、题目分析 给定的是字符串,返回的也是字符串。但是计算要通过加法计算。 三、
阅读全文
摘要:加一 一、题目描述 给定一个非空数组,数组的元素都是单个数字。这个数组的各个元素组成一个整数。给这个整数加一。输出加一后的数组。 实例 输入:digits = [1,2,3] 输出:[1,2,4] 输入:digits = [4,3,2,1] 输出:[4,3,2,2] 输入:digits = [0]
阅读全文
摘要:二进制矩阵中的特殊位置 一、题目描述 给一个矩阵mat,其中的元素都为0或1。找出其中的特殊位置的个数。特殊位置就是此位置为1,所在行和列其余位置都为0;返回有几个这样的位置。 实例 输入:mat = [[1,0,0], [0,0,1], [1,0,0]] 输出:1 输入:mat = [[1,0,0
阅读全文
摘要:一、题目描述 给定一个非负整数数组arr,经过编码后新数组encode的长度为n-1,编码的规则为encode[i] = arr[ i ] ★arr [i+1] (★为异或符)。给出编码后encode数组,和原来数组的第一个元素。返回解码后的arr数组。 输入:encoded = [1,2,3],
阅读全文
摘要:换酒问题 一、题目描述 由numBottles瓶酒,可以用numExchange个空酒瓶换一个新酒。问最多可以喝多少瓶酒? 二、题目分析 这里空酒瓶包括新换的酒喝完的酒瓶。就是原来总酒瓶numbootles需要加上新换的酒喝完的酒瓶。 三、解题思路 方法1 一次性喝完一次性兑换。创建一个变量num来
阅读全文
摘要:商品折扣后的最终价格 一、题目描述 给定一个数组prices,每一个元素都是一件商品的价格。如果从数组左边开始从0索引开始。如果1处索引的价格,小于0处。则将1处的价格作为优惠价格。现价就是优惠原价减去现价,依次类推。如果i后面的元素都是大于i的话,商品价格就是原价。 实例 输入:prices =
阅读全文
摘要:最后单词长度 一、题目描述 给定一个字符串s,若干单词组成,单词前后用一些空格字符串隔开。但会字符串中的最后一个单词的长度。单词是指仅由字母组成,不包含任何空格字符的最大字符串。 实例1 输出:s = "hellow world" 输出:5 二、题目分析 给定一个字符串,可以将最后一个字符串提取出来
阅读全文