首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定2个排序列表A和B,找出B中不在A中的所有元素

的问题,可以通过遍历列表B的元素,判断该元素是否在列表A中出现来解决。

算法步骤如下:

  1. 初始化一个空列表result,用于存储B中不在A中的所有元素。
  2. 初始化两个指针,分别指向列表A和列表B的开头。
  3. 进入循环,直到其中一个指针到达列表的末尾:
    • 如果指针A指向的元素等于指针B指向的元素,说明该元素在A中出现,两个指针同时向后移动一位。
    • 如果指针A指向的元素小于指针B指向的元素,说明该元素在A中不存在,将该元素加入result列表,并移动指针A向后移动一位。
    • 如果指针A指向的元素大于指针B指向的元素,说明该元素在A中不存在,将该元素加入result列表,并移动指针B向后移动一位。
  • 如果列表A的元素已经全部遍历完,但列表B还有剩余元素,则将剩余的元素全部加入result列表。
  • 循环结束后,result列表即为B中不在A中的所有元素。

下面是一个示例的Python代码实现:

代码语言:txt
复制
def find_elements_not_in_a(a, b):
    result = []
    pointer_a = 0
    pointer_b = 0

    while pointer_a < len(a) and pointer_b < len(b):
        if a[pointer_a] == b[pointer_b]:
            pointer_a += 1
            pointer_b += 1
        elif a[pointer_a] < b[pointer_b]:
            result.append(b[pointer_b])
            pointer_b += 1
        else:
            pointer_a += 1

    result.extend(b[pointer_b:])

    return result

该算法的时间复杂度为O(max(len(a), len(b))),空间复杂度为O(1)。

推荐腾讯云相关产品:腾讯云对象存储(COS)提供了高可靠、低成本的云存储服务,可用于存储大规模静态文件、图片、音视频等数据。产品介绍链接:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组每个元素移动到 A 集合 或者 B 集合 使得 A 集合 B 集合不为空,并

2022-04-23:给定你一个整数数组 nums我们要将 nums 数组每个元素移动到 A 集合 或者 B 集合中使得 A 集合 B 集合不为空,并且 average(A) == average...注意:对于数组 arr, average(arr) 是 arr 所有元素除以 arr 长度。输入: nums = 1,2,3,4,5,6,7,8。输出: true。...答案2022-04-23:定义全局变量 n、s、l r,分别表示数组长度、数组元素之和、左侧集合元素个数右侧集合元素个数。...创建一个长度为 n/2 切片 larr 一个长度为 n-len(larr) 切片 rarr,将前半部分元素存储在 larr ,将后半部分元素存储在 rarr 。...编写函数 contains(num int) bool,其中 num 是需要查找元素。使用二分查找算法在 rvalues 数组查找相应元素

63700

2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组每个元素移动到 A 集合 或者 B 集合 使得

2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组每个元素移动到 A 集合 或者 B 集合 使得 A 集合 B 集合不为空,并且 average(A) == average...注意:对于数组 arr, average(arr) 是 arr 所有元素除以 arr 长度。 输入: nums = [1,2,3,4,5,6,7,8]。 输出: true。...定义全局变量 n、s、l r,分别表示数组长度、数组元素之和、左侧集合元素个数右侧集合元素个数。 2....创建一个长度为 n/2 切片 larr 一个长度为 n-len(larr) 切片 rarr,将前半部分元素存储在 larr ,将后半部分元素存储在 rarr 。 6....对右侧集合指标值进行排序,以便进行二分查找。 8. 遍历左侧集合指标值,在右侧集合查找是否存在相反数,如果存在则说明可以分割成两个具有相同平均数子集,返回 true;否则返回 false。

49130
  • c语言实验把B每个元素取出来,在A表做一次定位查找,如果它不在A表,就将它放入,否则就不放入。

    c语言实验:经典数组合并实现思路:1、判断表是否为空2、取出b表每一个元素3、将取出每一个元素与a表进行匹配,如果能够匹配到说明元素存在 不添加。跳出继续匹配下一次4、如果 标记不存在。...那么添加元素到末尾。具体实现代码:#include int main() {//把B每个元素取出来,在A表做一次定位查找,如果它不在A表,就将它放入,否则就不放入。...= sizeof(B) / sizeof(B[0]); // 数组B长度 // 放入元素A表元素输出看一下 printf("添加元素序列:\n"); for (...isOn) { // 元素不存在 A[ALength] = B[i]; // 将元素放入A表末尾 ALength++; // 增加A表长度...A表元素输出看一下 printf("添加元素序列:\n"); for (int i = 0; i < ALength; i++) { printf("%c ", A[i]

    16610

    2022-04-07:给定一个只由ab组成字符串str,strabba子串都可以消除

    2022-04-07:给定一个只由'a''b'组成字符串str, str"ab""ba"子串都可以消除, 消除之后剩下字符会重新靠在一起,继续出现可以消除子串......你任务是决定一种消除顺序,最后让str消除到尽可能短。 返回尽可能剩余字符串。 来自阿里。 答案2022-04-07: 方法一:栈。 方法二:分别求ab个数,然后做差,谁多输出谁。...这个方法是我另外想,经过大量测试,准确无误。 时间复杂度:O(N)。 代码用golang编写。...= 0 && str[stack[size-1]] == 'b' hasA = hasA || str[i] == 'a' hasB = hasB || str[i] == 'b'...< n; i++ { aa := rand.Intn(2) if aa == 0 { ret[i] = 'a' } else { ret[i] = '<em>b</em>'

    43530

    15. 三数之和

    题目描述 给定一个包含 n 个整数数组 nums,判断 nums 是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复三元组。...注意:答案不可以包含重复三元组。...想要找出三个数相加等于0,我们可以数组依次遍历, 每一项a[i]我们都认为它是最终能够用组成0一个数字,那么我们目标就是找到 剩下元素(除a[i]) 两个相加等于-a[i]....通过上面的思路,我们问题转化为了 给定一个数组,找出其中两个相加等于给定值, 这个问题是比较简单, 我们只需要对数组进行排序,然后双指针解决即可。...在这里之所以要排序解决是因为, 我们算法瓶颈在这里不在排序,而在于O(N^2),如果我们瓶颈是排序,就可以考虑别的方式了 如果找某一个特定元素,一个指针就够了。

    46330

    python-元组,字典,列表

    seq 中元素做字典键,val 为字典所有键对应初始值 4 dict.get(key, default=None) 返回指定键值,如果值不在字典返回default值 5 dict.has_key...把字典dict2键/值对更新到dict里 10 dict.values() 以列表返回字典所有值 11 pop(key[,default]) 删除字典给定键 key 所对应值,返回值为被删除值...12 popitem() 返回并删除字典最后一对键值。...(obj) 从列表找出某个值第一个匹配项索引位置 5 list.insert(index, obj) 将对象插入列表 6 list.pop([index=-1]) 移除列表一个元素(默认最后一个元素...; cmp:用于比较函数,比较什么由key决定; key:用列表元素某个属性或函数进行作为关键字,有默认值,迭代集合一项; reverse:排序规则. reverse = True 降序

    1.1K40

    python 面试题-收集100+面试题笔试题

    3.5 找出列表单词最长一个 a = [“hello”, “world”, “yoyo”, “congratulations”] 找出列表单词最长一个 3.6 切片取出列表中最大三个数 取出列表中最大三个值...’, ‘more’, ‘my’, ‘ability’, ‘are’, ‘so’, ‘poor’ ] 3.22 列表查找元素位置 给定一个整数数组A及它大小n,同时给定要查找元素val, 请返回它在数组位置...nums 一个目标值target ,请你在该数组找出为目标值那两个整数,并返回他 们数组下标。...4.13 集合(交集、差集、并集) a = [2, 3, 8, 4, 9, 5, 6] b = [2, 5, 6, 10, 17, 11] 1.找出ab中都包含了元素 2.a或b包含所有元素...’,’UYIIYU’ 总共有6个 5.22 找出一个列表所有出现连续数(栈) 找出一个列表所有出现连续数字,如列表a=[1,2,3,8,6,7,5,10,16,98,99,100,101]

    6.8K20

    Python面试大全-Python基础

    8、写一个列表生成式,产生一个公差为11等差数列。 9、给定两个列表,怎么找出他们相同元素不同元素? 10、请写出一段Python代码实现删除list里面的重复元素?...11、给定两个list A、B,请用找出A、B相同与不同元素 12、Python内置数据结构有几种?...18、求出列表所有奇数并构造新列表 19、用一行Python代码写出1+2+3+10248 20、Python变量作用域?...8、写一个列表生成式,产生一个公差为11等差数列。 print([x*11 for x in range(10)]) 运行结果: 9、给定两个列表,怎么找出他们相同元素不同元素?...= [] for i in l1: if not i in l2: l2.append(i) print(l2) 运行结果: 11、给定两个list A、B,请用找出A、B相同与不同元素

    47920

    python面试题总结

    所谓不可变就是说, 我们不能改变这个数据在内存值, 所以当我们改变这个变量赋值时, 只是在内存重新开辟了一块空间, 将这一条新数据存放在这一个新内存地址里, 而原来那个变量就不在引用原数据内存地址而转为引用新数据内存地址了...python 代码实现删除一个 list 里面的重复元素 统计一个文本单词频次最高 10 个单词 请写出一个函数满足以下条件 使用单一列表生成式来产生一个新列表 用一行代码生成1,4,9,16,25,36,49,64,81,100...两个有序列表,l1,l2,对这两个列表进行合并不可使用 extend 给定一个任意长度数组,实现一个函数 写一个函数找出一个整数数组,第二大数 阅读一下代码他们输出结果是什么?...请按 alist 中元素 age 由大到小排序 写一个列表生成式,产生一个公差为 11 等差数列 给定两个列表,怎么找出他们相同元素不同元素?...请写出一段 python 代码实现删除 list 里面的重复元素给定两个 list A,B ,请用找出 A,B 相同与不同元素 输入日期, 判断这一天是这一年第几天?

    38520

    【C语言刷题——Leetcode12道题】带你起飞,飞进垃圾堆

    有序数组中出现次数超过25%元素 1351. 统计有序矩阵负数 1903. 字符串最大奇数 1979. 找出数组最大公约数 2089. 找出数组排序目标下标 2124....字母在字符串百分比 总结 260.只出现一次数字III(难度:中等) 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次那两个元素。...给定两个整数 left right ,返回一个列表列表元素是范围 [left, right] 内所有的 自除数 。...将 nums 按 非递减 顺序排序后,返回由 nums 目标下标组成列表。如果不存在目标下标,返回一个 空 列表。返回列表必须按 递增 顺序排列。...检查是否所有 A 都在 B 之前 给你一个 仅 由字符 ‘a’ b’ 组成字符串 s 。

    88820

    牛客网剑指offer-2

    分析 使用标准库全排列方法将列表元素进行全排序,然后去重排序取第0个元素即可 import itertools class Solution: def PrintMinNumber(self...分析 使用一个列表来保存元素,因为每个元素最多出现两次,当出现第二次时候,删除该元素,最后列表只会留下只出现一次元素 class Solution: # 返回[a,b] 其中ab是出现一次两个数字...现在把问题交给你,你能不能也很快找出所有为S连续正数序列? Good Luck! 输出描述: 输出所有为S连续正数序列。...# 使用一个字典存储乘积两个数键值对 res = {} # 遍历列表 for i in array: # 判断减去该元素是否在该列表...A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B元素B[i]=A[0]A[1]…A[i-1]A[i+1]…A[n-1]。

    1.1K20

    Python面试题大全(一):基础知识学习

    11.写一个列表生成式,产生一个公差为11等差数列 12.给定两个列表,怎么找出他们相同元素不同元素? 13.请写出一段python代码实现删除list里面的重复元素?...14.给定两个list A,B ,请用找出A,B相同与不同元素 企业面试题 15.python新式类经典类区别? 16.python内置数据结构有几种?...11.写一个列表生成式,产生一个公差为11等差数列 print([x*11 for x in range(10)]) 12.给定两个列表,怎么找出他们相同元素不同元素?...i in l2: l2.append(i) print(l2) 14.给定两个list A,B ,请用找出A,B相同与不同元素 A,B 相同元素: print(set(A)&set...(B)) A,B 不同元素: print(set(A)^set(B)) 企业面试题 15.python新式类经典类区别?

    69150

    挑战NumPy100关,全部搞定你就NumPy大师了 | 附答案

    创建一个3x3矩阵,其值范围为0到8 (★☆☆) 从[1,2,0,0,4,0]找出所有非零元素 (★☆☆) 创建一个 3 * 3单位矩阵 (★☆☆) 使用随机值创建一个 $333$ 数组(★☆...给定一维数组,所有在3到8之间元素都变成其负数(正->负, 负->正). (★☆☆) 26. 这段脚本输出是什么?...有一个给定值, 从数组找出最接近值 (★★☆) 62. 设有两个形状为(1,3)(3,1)数组,如何使用迭代器计算它们总和?(★★☆) 63....如何找出一个数组里出现次数最多元素? 84. 从一个随机10x10矩阵中提取所有连续3x3块(★★★) 85....请找出A某些行, 该行内包含B整行元素(不在元素顺序). (★★★) 94. 设有一个10x3矩阵,请找出其中数值不完全相等行 (e.g. [2,2,3]) (★★★) 95.

    4.9K30

    9张图,32个案例带你轻松玩转Java stream

    b] 3.3 skip 跳过 Stream 前 n 个元素 案例 11:从数组获取第 5 个元素之后元素 String[] array = { "a", "b", "c", "d", "e",...案例 12:对给定数组进行排序 String[] array = { "c", "c", "a", "b", "b", "e", "e", "d", "d"}; List newList...50分:" + result2); 输出结果: 是否所有学生成绩都高于90分:false 是否所有学生成绩都高于50分:true 4.4 noneMatch 是否没有元素能匹配给定条件,如果集合是空...案例 24:根据学生列表,归纳出姓名列表、不同分数列表、姓名分数集合,其中 Mike Jessie 分数都是 88。...案例 29:输出所有学生姓名,用逗号分隔,这里还是使用案例 27 学生列表 String studentNames = students.stream().map(r -> r.getName()

    57210

    2 Python 基础: 列表及字典内置函数&方法内容梳理

    Python列表函数&方法 [image.png] [4x7z8b9jea.png] Python包含以下方法: 队列使用 队列:先进先出【任务队列】(先进来任务先拿出来解决) 栈:后进先出【页面路由...统计某个元素列表中出现次数 [image.png] list.extend(seq) 在列表末尾一次性追加另一个序列多个值(用新列表扩展原来列表) [image.png] list.index...(obj) 从列表找出某个值第一个匹配项索引位置 [image.png] list.insert(index, obj) 将对象插入列表 [image.png] list.pop(obj=list-...1) 移除列表一个元素(默认最后一个元素),并且返回该元素值 [image.png] list.remove(obj) 移除列表某个值第一个匹配项 list.reverse() 反向列表元素....dict.values() 以列表返回字典所有值 [image.png] 10.pop(key,default) 删除字典给定键 key 所对应值,返回值为被删除值。

    72640

    海量数据处理问题

    1.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同url?...,然后根据所取得值将url分别存储到1000个小文件(记为 ? )。这样每个小文件大约为300M。 遍历文件b,采取a相同方式将url分别存储到1000个小文件(记为 ? )。...方案2: 也可采用上题类似的方法,进行划分小文件方法。然后在小文件找出不重复整数,并排序。然后再进行归并,注意去除重复元素。...,首先查看aaabbb是否在同一个并查集中,如果不在,那么把它们所在并查集合并,然后再看bbbccc是否在同一个并查集中,如果不在,那么也把它们所在并查集合并。...合并时候,可以把大进行合,这样也减少复杂度。 17.最大子序列与最大子矩阵问题 数组最大子序列问题:给定一个数组,其中元素有正,也有负,找出其中一个连续子序列,使最大。

    1.2K20
    领券