avatar
ihas1337一道题没看懂# JobHunting - 待字闺中
P*c
1
http://www.ihas1337code.com/page/2
A Distance Maximizing problem
后面那个O(n)解法。找出valid的starting points之后,后面怎么又要shortest
starting point了呢。如果要shortest,至少也要把valid的starting points弄个排序
或者heap什么的吧。就不是O(n)了啊。
avatar
m*q
2
这个题是要先扫描数组,维护一个递减子序列,就是start point的序列,
shortest start point是这个序列的最后一个元素。
然后从后面扫描,直到遇到一个元素大于递减子序列的最后一个元素,
计算差值,并把最后一个元素从递减子序列中去掉,然后比较递减
子序列的当前最后一个元素,然后继续扫描...
记得板上前一阵有过讨论

【在 P**********c 的大作中提到】
: http://www.ihas1337code.com/page/2
: A Distance Maximizing problem
: 后面那个O(n)解法。找出valid的starting points之后,后面怎么又要shortest
: starting point了呢。如果要shortest,至少也要把valid的starting points弄个排序
: 或者heap什么的吧。就不是O(n)了啊。

avatar
P*c
3
怎么样O(n)维护一个递减子序列?

【在 m**q 的大作中提到】
: 这个题是要先扫描数组,维护一个递减子序列,就是start point的序列,
: shortest start point是这个序列的最后一个元素。
: 然后从后面扫描,直到遇到一个元素大于递减子序列的最后一个元素,
: 计算差值,并把最后一个元素从递减子序列中去掉,然后比较递减
: 子序列的当前最后一个元素,然后继续扫描...
: 记得板上前一阵有过讨论

avatar
h*6
4
维护递减子序列似乎需要O(nlogn)
avatar
m*q
5
不用啊,就是一个stack,把数组第一个元素push进栈,
然后扫描数组,小于stack top的就push进栈,复杂度O(n)

【在 h**6 的大作中提到】
: 维护递减子序列似乎需要O(nlogn)
avatar
h*6
6
我想错了,想成了最长递减子序列。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。