'in' 表示两个复杂度最低的排序列表

2024-01-08

我有两个sorted列表,例如

a = [1, 4, 7, 8]
b = [1, 2, 3, 4, 5, 6]

我想知道其中的每一项a如果它在b。对于上面的例子,我想找到

a_in_b = [True, True, False, False]

(或具有索引,其中a_in_b is True也会好的)。

现在,两者a and b非常大,因此复杂性是一个问题。如果M = len(a) and N = len(b). 我怎样才能以低于M * O(N)利用两个列表都已排序的事实?


您可以迭代您的b在循环内手动列出a。你会想要推进b当您从中看到的最新值小于当前值时进行迭代a.

from math import inf

result = []
b_iter = iter(b)                           # create an iterator over b
b_val = -inf
for a_val in a:
    while b_val < a_val:
        b_val = next(b_iter, inf)          # manually iterate on it
    result.append(a_val == b_val)

这应该有一个运行时间O(M+N),因为每个列表项最多迭代一次(b甚至可能不需要完全迭代)。

如果您愿意,您可以避免使用浮点无穷大,但是您需要做一些额外的工作来处理一些边缘情况(例如,如果b是空的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

'in' 表示两个复杂度最低的排序列表 的相关文章

  • Pygame读取MIDI输入

    我参考了Pygame MIDI 文档 https www pygame org docs ref midi html and 这段代码 https stackoverflow com questions 62983509 pygame mi
  • 在 Django 中定义视图和 url。为什么调用函数时不使用括号?

    我已经在经历 Python速成课程 目前正在进行 Django Web应用程序项目 学习日志 阶段 有些东西与我已经学到的相矛盾 views py file from django shortcuts import render def i
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • 使用 Django 的 post_save() 信号

    我有两张桌子 class Advertisement models Model created at models DateTimeField auto now add True author email models EmailField
  • 如何自动替换多个文件的文本内容中的字符?

    我有一个文件夹 myfolder包含许多乳胶表 我需要替换其中每个字符 即替换任何minus sign by an en dash 只是为了确定 我们正在替换连字符INSIDE该文件夹中的所有 tex 文件 我不关心 tex 文件名 手动执
  • Sorted(key=lambda: ...) 背后的语法[重复]

    这个问题在这里已经有答案了 我不太明白背后的语法sorted 争论 key lambda variable variable 0 Isn t lambda随意的 为什么是variable在看起来像的内容中陈述了两次dict 我认为这里的所有
  • python ttk treeview:如何选择并设置焦点在一行上?

    我有一个 ttk Treeview 小部件 其中包含一些数据行 如何设置焦点并选择 突出显示 指定项目 tree focus set 什么也没做 tree selection set 0 抱怨 尽管小部件明显填充了超过零个项目 但未找到项目
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • 在谷歌C​​olab中使用cv2.imshow()

    我正在尝试通过输入视频来对视频进行对象检测 cap cv2 VideoCapture video3 mp4 在处理部分之后 我想使用实时对象检测来显示视频 while True ret image np cap read Expand di
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 从 dask 数据框中的日期时间序列获取年份和星期?

    如果我有一个 Pandas 数据框和一个日期时间类型的列 我可以按如下方式获取年份 df year df date dt year 对于 dask 数据框 这是行不通的 如果我先计算 像这样 df year df date compute
  • PyQt 中的线程和信号问题

    我在 PyQt 中的线程之间进行通信时遇到一些问题 我使用信号在两个线程 发送者和监听者 之间进行通信 发送者发送消息 期望被监听者接收 但是 没有收到任何消息 谁能建议可能出了什么问题 我确信这一定很简单 但我已经环顾了几个小时但没有发现
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA
  • 如何识别图形线条

    我有以下格式的路径的 x y 数据 示例仅用于说明 seq p1 p2 0 20 2 3 1 20 2 4 2 20 4 4 3 22 5 5 4 22 5 6 5 23 6 2 6 23 6 3 7 23 6 4 每条路径都有多个点 它们
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • 如何最好地合并多个字典中的值?

    我创建了一个函数 它接受字典的多个参数 并返回一个连接的字典 我在网上研究了一段时间关于连接合并字典的内容并测试了有趣的字典 它们都会导致更新值 或覆盖它们 我的用例是传入字典 其中每个键都有一个值 并且想要一个具有相同或不同键的字典 以及
  • 使用 Android 读取 NXP ICODE SLI-L 标签

    我正在尝试在我的 Android 应用程序中读取 NXP 开发的 NFC 标签 可以使用 Android 读取标签 恩智浦应用程序 https play google com store apps details id com nxp ta
  • 如何将共生矩阵转换为稀疏矩阵

    我开始处理稀疏矩阵 所以我对这个主题并不是很精通 我的问题是 我有一个来自单词列表的简单共现矩阵 只是一个二维共现矩阵 逐字计算一个单词在同一上下文中出现的次数 由于语料库不是那么大 因此矩阵非常稀疏 我想将其转换为稀疏矩阵以便能够更好地处
  • 如何将 cordova-crosswalk 应用程序的 x86 和 ARM APK 发布到 Play 商店?

    我的应用程序是使用 Cordova 和 Crosswalk 开发 发布的 Crosswalk 生成一个适用于 ARM cpu 的 apk 和另一个适用于 x86 cpu 的 apk 目前 当我将 ARM apk 上传到 Play 商店 然后
  • SSRS 将多个数据集合并为一张图

    我一直在网上寻找一种在 SSRS 2008 R2 中完全组合数据集的方法 基本上 我需要创建一个由多个不同数据集 所有数据集具有相同的列 如下所示 组成的单个表和图表 这些数据集是从多个 SQL 服务器检索的 防止我将它们组合在单个查询中
  • 仅在 Python 中将 datetime 对象转换为日期字符串

    我看到很多关于将日期字符串转换为datetimePython 中的对象 但我想走另一条路 我有 datetime datetime 2012 2 23 0 0 我想将它转换为字符串 2 23 2012 您可以使用strftime http
  • Xamarin iOS 防止特定视图控制器旋转

    需要防止特定视图控制器上的屏幕旋转我在下面尝试过 public override bool ShouldAutorotateToInterfaceOrientation UIInterfaceOrientation toInterfaceO
  • Select2:动态隐藏某些选项

    基本上我正在寻找的是能够从所选项目的下拉列表中隐藏选项的能力 因此 从技术上讲 它们仍然是选项 但您只是无法单击它们 因为它们是隐藏的 我浏览了文档并发现了与禁用相关的内容 不幸的是我非常特别想要隐藏项目的能力 有人对如何实现这一目标有建议
  • 继承构造函数

    为什么这段代码 class A public explicit A int x class B public A int main void B b new B 5 delete b 导致这些错误 main cpp In function
  • Java 制作一个单独的注释,结合其他注释

    使用 Play Framework 2 2 制作 RESTful API 在我正在使用的模型中 我只想输出 Json with Jackson 相关对象的 Id 而不是整个对象 我找到了如何做到这一点 如下所示 JsonIdentityIn
  • 使用 FileProvider 在 Android N 上打开下载的文件

    由于 FileProvider 的更改 我必须修复适用于 Android N 的应用程序 我基本上已经阅读了关于这个主题的所有内容 但没有找到适合我的解决方案 这是我们之前的代码 它开始从我们的应用程序下载 并将它们存储在Download文
  • Dart/Flutter 中什么时候应该使用分号?

    我是 Dart Flutter 的初学者并尝试阅读this https dart dev guides language language tour但我仍然不明白什么时候使用分号 为什么我们不在小部件的每个括号末尾插入分号 Dart中有两种
  • 我可以查出坐标是否在城市内吗?

    假设我有一个 LatLng 对象 有什么方法可以检查它是否代表城市内的可能位置 如何获得城市的边界 我正在使用谷歌地图V3 您尝试过反向地理编码吗 http code google com apis maps documentation j
  • 程序收到信号:“EXC_BAD_ACCESS”

    我有一个字符串变量 它存储日期选择器中的日期 但是当我在其他函数中使用它的值时 我收到类似程序收到信号的错误 EXC BAD ACCESS 注意 变量是全局定义的 code void changedDate UIDatePicker pic
  • 从相机预览中的触摸事件中检索准确的 RGB 值

    我一直在开发一个 Android 应用程序 它只需要检索并在相机预览上显示触摸事件的坐标和 RGB 值 我是这种编程语言的初学者 我只是想尝试一下 但应用程序在触摸事件期间不断崩溃 这是我在 Android 中尝试过的代码 When cop
  • 在 PyQt 中显示其他语言字符

    PyQt4 有没有办法显示其他语言字符 如果有 我应该采取什么方法 方向 提前致谢 Qt 使用 Unicode 并且应该能够以您拥有合适字体的任何语言显示 Unicode 文本 例如 Roberto Alesina 的简单 Hello Wo
  • 新的“dynamic”C# 4.0 关键字是否弃用了“var”关键字?

    当 C 4 0 出现时 我们有了如此处描述的动态关键字excellent presentation by Anders Hejlsberg http channel9 msdn com pdc2008 TL16 C 的发展速度比我能跟上的要
  • OSGi - 这项技术有多成熟?

    我有一个要求 我需要共享一些网络资源 jsp html js images css等 跨越不同Spring based Struts 2应用程序 似乎OSGi可以用来实现这个吗 有人可以指点一下如何实现这一目标吗OSGi 其次我想知道的是O
  • Java 线程/易失性

    我有一个线程 class Foo extends Thread boolean active true public void run while active do stuff public void end active false p
  • 'in' 表示两个复杂度最低的排序列表

    我有两个sorted列表 例如 a 1 4 7 8 b 1 2 3 4 5 6 我想知道其中的每一项a如果它在b 对于上面的例子 我想找到 a in b True True False False 或具有索引 其中a in b is Tru