为什么优化成一位,把第一维度去掉就对了
时间: 2024-03-04 22:52:48 浏览: 8
这段代码是用来解决一个字符串序列问题的,其中输入的n表示字符串的数量,l[i]和r[i]表示第i个字符串的首位和末位字符。代码的核心部分是一个二维数组f[N][10],其中f[i][j]表示前i个字符串中以j结尾的最长上升子序列长度。最后输出n-t表示最少需要删除的字符串数量,其中t表示最长上升子序列的长度。
至于为什么可以优化成一维数组,是因为f[i][j]只和f[i-1][j]和f[i-1][l[i]]有关,与f[i-1][k] (k != j && k != l[i]) 无关,因此只需要维护上一次计算的结果即可,可以用滚动数组或者动态规划思想实现。优化后的空间复杂度为O(1)。
相关问题
列表中第一位重复 就合并成一个列表 用python写出代码
以下是Python代码:
```
list_ = [1, 2, 3, 1, 4, 5, 2, 6, 3, 7, 8, 9, 9]
output = []
for i in list_:
if i not in output:
output.append(i)
print(output)
```
执行该代码后,输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
python的reshape函数四维的第一个维度为1代表什么
在Python中,reshape函数是用来调整数组形状的函数。当你使用reshape函数调整一个四维数组时,第一个维度为1表示这个四维数组的第一维大小为1,也就是只有一个元素,其他维度的大小不变。这种情况通常出现在需要将一个数组中的多个张量合并成一个张量时,可以使用reshape函数将多个张量合并成一个张量。另外,有时候我们也会将一个向量转换成一个矩阵,此时可以将向量reshape成一个1xN的矩阵,其中N是向量的长度。