LeetCode算法题(二)更新中
二叉树
1. 二叉树的中序遍历
给定一个二叉树的根节点 root
,返回 它的 中序 遍历 。
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
提示:
树中节点数目在范围 [0, 100]
内
100 <= Node.val <= 100
示例:

1 | 输入:root = [1,null,2,3] |
代码:
1 | /** |
2. 二叉树的最大深度
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
提示:
树中节点的数量在 [0, 104]
区间内。
100 <= Node.val <= 100
示例:

1 | 输入:root = [3,9,20,null,null,15,7] |
代码:
1 | // 深度优先搜索算法 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
提示:
示例:
1 |
代码:
1 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
提示:
示例:
1 |
代码:
1 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
**提示:
示例:
1 |
代码:
1 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
**提示:
示例:
1 |
代码:
1 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
**提示:
示例:
1 |
代码:
1 |
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
提示:
示例:
1 |
代码:
1 |
图论
1. 最大子数组和
给你一个整数数组 nums
,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
**提示:
示例:
1 |
代码:
回溯
二分查找
栈
堆
贪心算法
动态规划
1.用地毯覆盖后的最少白色砖块
给你一个下标从 0 开始的 二进制 字符串 floor
,它表示地板上砖块的颜色。
floor[i] = '0'
表示地板上第i
块砖块的颜色是 黑色 。floor[i] = '1'
表示地板上第i
块砖块的颜色是 白色 。
同时给你 numCarpets
和 carpetLen
。你有 numCarpets
条 黑色 的地毯,每一条 黑色 的地毯长度都为 carpetLen
块砖块。请你使用这些地毯去覆盖砖块,使得未被覆盖的剩余 白色 砖块的数目 最小 。地毯相互之间可以覆盖。
请你返回没被覆盖的白色砖块的 最少 数目。
提示:
1 <= carpetLen <= floor.length <= 1000
floor[i]
要么是 '0'
,要么是 '1'
。
1 <= numCarpets <= 1000
示例:

1 | 输入:floor = "10110101", numCarpets = 2, carpetLen = 2 |

1 | 输入:floor = "11111", numCarpets = 2, carpetLen = 3 |
代码:
1 |