leetcode
我不是彭鱼宴
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 32 - I. 从上到下打印二叉树
剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 提示: 节点总数 <= 1000 这题主要用到树的层次遍历,因为之前做过,不大熟悉给忘了,现在记录一下,代码思路。主要通过队列去存储当前行的所有结点,通过while去循环队列,取出同一行的值,原创 2021-06-06 17:56:14 · 86 阅读 · 0 评论 -
剑指 Offer 47. 礼物的最大价值
剑指 Offer 47. 礼物的最大价值 题目:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 示例 1: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 12 解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物 提示: 0 < grid.length <原创 2021-06-04 17:24:45 · 144 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列 题目:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 看到题目的时候我首先想到的是递归法,用递原创 2021-06-01 16:34:25 · 94 阅读 · 0 评论 -
力扣 9. 回文数(简单难度)
力扣 9. 回文数(简单难度) 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 思路:这里我本来想要除法的方法去得到每一位数,来判断回文,后来看到有网友给出的方法,String原创 2020-06-10 22:03:31 · 197 阅读 · 0 评论 -
力扣 990. 等式方程的可满足性(中等难度)
力扣 990. 等式方程的可满足性(中等难度) 题目:给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。 只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。 示例 1: 输入:[“a==b”,“b!=a”] 输出:false 解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一原创 2020-06-08 23:21:52 · 152 阅读 · 0 评论 -
力扣 128. 最长连续序列(困难难度)
力扣 128. 最长连续序列(困难难度) 题目:给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200,1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 思路:将数组放入Hash表中,然后通过contains的方法对数字的连续性进行验证。这里为了使时间复杂度减小,我们这里只要对连续数列的第一个进行操作。 代码如下 class Solution { public int longe原创 2020-06-06 21:45:41 · 158 阅读 · 0 评论 -
力扣 面试题29. 顺时针打印矩阵(简单难度)
力扣 面试题29. 顺时针打印矩阵(简单难度) 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 说说这题的思路,我先定义了当前坐标,用(x,y)表示,然后定义上左下右四个边界值。模拟取原创 2020-06-06 20:51:17 · 296 阅读 · 0 评论 -
力扣 238. 除自身以外数组的乘积(中等难度)
力扣 238. 除自身以外数组的乘积(中等难度) 题目: 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 进阶:你可以在常数空间复杂度内完成这个题目吗?(出于对空间复杂度分析的目的,输出数组不被视为额外空间原创 2020-06-04 23:06:54 · 147 阅读 · 0 评论 -
力扣 837. 新21点(中等难度)
力扣 837. 新21点(中等难度) 加粗文本原创 2020-06-03 23:50:51 · 142 阅读 · 0 评论 -
力扣 面试题64. 求1+2+…+n (难度中等)
力扣 面试题64. 求1+2+…+n (难度中等) 题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 看到题目的时候我首先想到的使用高斯定理,也就是(n + 1) * n / 2,但题目要求不能使用乘除。于是我放弃了这个方法。想了一下之后,我采用递归的方法来实现计算。 以下代码使用java语言 class Solution { public int sumNums(int n) { if(原创 2020-06-02 14:31:10 · 316 阅读 · 0 评论