跳至主要內容
746, 使用最小花费爬楼梯

一、题目描述

给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为0或下标为1的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

示例 1
输入: cost = [10, 15, 20]
输出: 15
解释: 你将从下标为1的台阶开始。


Mike大约 2 分钟dynamic programmingeasyarraydynamic programming
1137, 第N个泰波那契数

一、题目描述

泰波那契序列Tn定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2

给你整数n,请返回第n个泰波那契数Tn的值。

示例 1
输入: n = 4
输出: 4
解释:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4

示例 2
输入: n = 25
输出: 1389537


Mike大约 3 分钟dynamic programmingeasymathdynamic programmingmemoization
70, 爬楼梯

一、题目描述

假设你正在爬楼梯。需要n阶你才能到达楼顶。

每次你可以爬12个台阶。你有多少种不同的方法可以爬到楼顶呢?

示例 1
输入: n = 2
输出: 2
解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶

示例 2
输入: n = 3
输出: 3
解释: 有三种方法可以爬到楼顶。


Mike大约 3 分钟dynamic programmingeasymathdynamic programmingmemoization
509, 斐波那契数

一、题目描述

斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由01开始,后面的每一项数字都是前面两项数字的和。也就是:

  • F(0) = 0,F(1) = 1
  • F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定n,请计算F(n)

示例 1
输入: n = 2
输出: 1
解释: F(2) = F(1) + F(0) = 1 + 0 = 1


Mike大约 4 分钟dynamic programmingeasyrecursionmemoizationmathdynamic programming
860, 柠檬水找零

一、题目描述

在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5美元。

注意,一开始你手头没有任何零钱。

给你一个整数数组bills,其中bills[i]是第i位顾客付的账。如果你能给每位顾客正确找零,返回true,否则返回false


Mike大约 2 分钟greedyeasygreedyarray
1005, K次取反后最大化的数组和

一、题目描述

给你一个整数数组nums和一个整数k,按以下方法修改该数组:

  • 选择某个下标i并将nums[i]替换为-nums[i]

重复这个过程恰好k次。可以多次选择同一个下标i

以这种方式修改数组后,返回数组可能的最大和

示例 1
输入: nums = [4, 2, 3], k = 1
输出: 5
解释: 选择下标1nums变为[4, -2, 3]


Mike大约 3 分钟greedyeasygreedyarraysorting
455, 分发饼干

一、题目描述

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j] >= g[i],我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例 1
输入: g = [1, 2, 3], s = [1, 1]
输出: 1
解释: 你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。所以你应该输出1。


Mike大约 2 分钟greedyeasygreedyarraytwo pointerssorting
559, N叉树的最大深度

一、题目描述

给定一个N叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

N叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。

示例 1

输入: root = [1, null, 3, 2, 4, null, 5, 6]
输出: 3

示例 2

输入: root = [1, null, 2, 3, 4, 5, null, null, 6, 7, null, 8, null, 9, 10, null, null, 11, null, 12, null, 13, null, null, 14]
输出: 3


Mike大约 3 分钟binary treeeasytreedepth first searchbreadth first search
572, 另一棵树的子树

一、题目描述

给你两棵二叉树rootsubRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在则返回true;否则返回false

二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。

示例 1

输入: root = [3, 4, 5, 1, 2], subRoot = [4, 1, 2]
输出: true


Mike大约 4 分钟binary treeeasybinary treedepth first searchstring matchinghash function
100, 相同的树

一、题目描述

给你两棵二叉树的根节点pq,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1

输入: p = [1, 2, 3], q = [1, 2, 3]
输出: true

示例 2

输入: p = [1, 2], q = [1, null, 2]
输出: false

示例 3

输入: p = [1, 2, 1], q = [1, 1, 2]
输出: false


Mike大约 2 分钟binary treeeasybinary treedepth first searchbreadth first search
2
3
4
5
6