一、题目描述
一个机器人位于一个m x n
网格的左上角(起始点在下图中标记为Start
)。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为Finish
)。
问总共有多少条不同的路径?
示例 1
输入: m = 3, n = 7
输出: 28
示例 2
输入: m = 3, n = 2
输出: 3
解释: 从左上角开始,总共有 3 条路径可以到达右下角。
一个机器人位于一个m x n
网格的左上角(起始点在下图中标记为Start
)。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为Finish
)。
问总共有多少条不同的路径?
示例 1
输入: m = 3, n = 7
输出: 28
示例 2
输入: m = 3, n = 2
输出: 3
解释: 从左上角开始,总共有 3 条路径可以到达右下角。
给定一个正整数n
,将其拆分为k
个正整数的和(k >= 2
),并使这些整数的乘积最大化。
返回你可以获得的最大乘积。
示例 1
输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。
示例 2
输入: n = 10
输出: 36
解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。
示例 1
输入: [1, 2, 3, 1]
输出: 4
解释: 偷窃1
号房屋(金额 = 1),然后偷窃3
号房屋(金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4
。
给你一个整数数组nums
,你可以对它进行一些操作。
每次操作中,选择任意一个nums[i]
,删除它并获得nums[i]
的点数。之后,你必须删除所有等于nums[i] - 1
和nums[i] + 1
的元素。
开始你拥有0
个点数。返回你能通过这些操作获得的最大点数。
示例 1
输入: nums = [3, 4, 2]
输出: 6
解释:
删除4
获得4
个点数,因此3
也被删除。
之后,删除2
获得2
个点数。总共获得6
个点数。
给你一个整数数组cost
,其中cost[i]
是从楼梯第i
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为0
或下标为1
的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
示例 1
输入: cost = [10, 15, 20]
输出: 15
解释: 你将从下标为1
的台阶开始。
泰波那契序列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
假设你正在爬楼梯。需要n
阶你才能到达楼顶。
每次你可以爬1
或2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1
输入: n = 2
输出: 2
解释: 有两种方法可以爬到楼顶。
示例 2
输入: n = 3
输出: 3
解释: 有三种方法可以爬到楼顶。
斐波那契数(通常用F(n)
表示)形成的序列称为斐波那契数列。该数列由0
和1
开始,后面的每一项数字都是前面两项数字的和。也就是:
给定n
,请计算F(n)
。
示例 1
输入: n = 2
输出: 1
解释: F(2) = F(1) + F(0) = 1 + 0 = 1
给定一个二叉树,我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
示例 1
输入: root = [0, 0, null, 0, 0]
输出: 1
解释: 如图所示,一台摄像头足以监控所有节点。
示例 2
输入: root = [0, 0, null, 0, null, 0, null, null, 0]
输出: 2
解释: 需要至少两个摄像头来监视树的所有节点。上图显示了摄像头放置的有效位置之一。
给你一个整数数组nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
示例 1
输入: nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
输出: 6
解释: 连续子数组[4,-1,2,1]
的和最大,为6
。
示例 2
输入: nums = [1]
输出: 1