如何解决关于迭代器和n log n解决方案的一些问题
我的代码描述如下:
我的问题:给定一个数字和另一个其他数字的序列,找到大于或等于该数字的最接近值的索引。 第一:我不知道什么数据结构适合这个。
第二:我的解决方案花费了 O(n^2) 时间复杂度,因为我认为我使用了花费 O(n) 时间的距离函数。但我不知道任何其他解决方案 O(nlogn)
from bs4 import BeautifulSoup
html = '<span class="New_Link" id="tid_5785847"><a href="showthread.PHP?
tid=5785847">Some text here?</a></span>'
soup = BeautifulSoup(html,'html.parser')
span_attribute = soup.find('span')
id_value = span_attribute.get('id') # it is your ID from id="tid_5785847"
id_value = id_value.replace('tid_','') # replace tid_
print(id_value) # print only 5785847
解决方法
我不确定,但对我来说这似乎是一个 O(n) 问题:
int best = INT_MAX;
int ibest = -1;
for (int i = 0; i < arr.size(); i++) {
if (val <= arr[i] && arr[i] < best) {
best = arr[i];
ibest = i;
}
}
,
您可以为此进行基本的二进制搜索,将数字按排序顺序存储在成对的向量中。 pair 的第一个值将是该值,第二个值将是该数字在 arr
中的索引。对 value
进行二分搜索,这将在 O(log(n))
中完成任务。
但我认为插入已排序的数组将花费 O(n) 时间
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。