update dp
This commit is contained in:
@@ -11,6 +11,19 @@
|
||||
|
||||
不需要考虑溢出。
|
||||
|
||||
|
||||
用例:
|
||||
|
||||
```
|
||||
2^3 = 8
|
||||
0^3 = 0
|
||||
2^0 = 1
|
||||
2^-3 = 1/(2^3) = 0.125
|
||||
0^-3
|
||||
```
|
||||
|
||||
|
||||
|
||||
分析:这是一道看起来很简单的问题。可能有不少的人在看到题目后30秒写出如下的代码:
|
||||
```
|
||||
double Power(double base, int exponent)
|
||||
@@ -35,15 +48,6 @@ double Power(double base, int exponent)
|
||||
2^1 = 2
|
||||
```
|
||||
|
||||
用例:
|
||||
|
||||
```
|
||||
2 3 = 8
|
||||
0 3 = 0
|
||||
2 0 = 1
|
||||
2 -3 = 1/(2^3) = 0.125
|
||||
0 -3
|
||||
```
|
||||
|
||||
使用递归实现的代码示例:
|
||||
|
||||
@@ -62,6 +66,25 @@ double Power(double base, unsigned int exponent)
|
||||
```
|
||||
|
||||
|
||||
## Sqrt(x)
|
||||
|
||||
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
|
||||
|
||||
|
||||
示例 1:
|
||||
```
|
||||
输入:x = 4
|
||||
输出:2
|
||||
```
|
||||
示例 2:
|
||||
```
|
||||
输入:x = 8
|
||||
输出:2
|
||||
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 求根号2的值
|
||||
|
||||
并且按照我的需要列出指定小数位,比如根号2是1.141 我要列出1位小数就是1.1 2位就是1.14, 1000位就是1.141...... 等。。
|
||||
|
||||
@@ -141,4 +141,35 @@ int one_appear_count(int n);
|
||||
|
||||
|
||||
|
||||
## 搜索旋转排序数组
|
||||
|
||||
|
||||
整数数组 nums 按升序排列,数组中的值 互不相同 。
|
||||
|
||||
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。
|
||||
|
||||
给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。
|
||||
|
||||
|
||||
示例 1:
|
||||
|
||||
```
|
||||
输入:nums = [4,5,6,7,0,1,2], target = 0
|
||||
输出:4
|
||||
```
|
||||
|
||||
示例 2:
|
||||
```
|
||||
输入:nums = [4,5,6,7,0,1,2], target = 3
|
||||
输出:-1
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -107,8 +107,7 @@ TreeNode invertTree(TreeNode root) {
|
||||
|
||||
|
||||
|
||||
|
||||
## 二叉树两个结点的最低共同父结点
|
||||
## 二叉树两个结点的最低共同父结点 (最近公共祖先)
|
||||
|
||||
设计一个算法,找出二叉树上任意两个结点的最近共同父结点。复杂度如果是O(n2)则不得分
|
||||
|
||||
@@ -119,6 +118,9 @@ TreeNode invertTree(TreeNode root) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 求一个二叉树中任意两个节点间的最大距离
|
||||
|
||||
两个节点的距离的定义是 这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度。
|
||||
|
||||
@@ -49,13 +49,30 @@
|
||||
分析:这道题本质上还是考查二元树的遍历。对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
|
||||
|
||||
|
||||
## 二元树的最小深度
|
||||
|
||||
|
||||
例如:输入二元树:
|
||||
```
|
||||
|
||||
10
|
||||
/ \
|
||||
6 14
|
||||
/ \
|
||||
12 16
|
||||
```
|
||||
|
||||
输出该树的最小深度2。
|
||||
|
||||
|
||||
|
||||
|
||||
## 判断整数序列是不是二元查找树的后序遍历结果
|
||||
|
||||
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
|
||||
如果是返回true,否则返回false。
|
||||
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
|
||||
|
||||
例如输入`5、7、6、9、11、10、8`,由于这一整数序列是如下树的后序遍历结果:
|
||||
```
|
||||
8
|
||||
/ \
|
||||
@@ -66,3 +83,9 @@
|
||||
因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# 二叉搜索树
|
||||
|
||||
关于二叉查找树特性[参考这里](../4%20Tree/2-二叉查找树/二叉查找树.md)
|
||||
|
||||
## 验证二叉搜索树
|
||||
|
||||
|
||||
## 二叉搜索树中的节点搜索
|
||||
|
||||
|
||||
## 二叉搜索树中的插入操作
|
||||
|
||||
|
||||
## 删除二叉搜索树中的节点
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user