gpt4 book ai didi

c - 如何删除列表A中也在列表B中的所有元素?

转载 作者:行者123 更新时间:2023-11-30 15:15:23 25 4
gpt4 key购买 nike

我正在寻找 C 语言的removeAll 等效项。

我将用一个简单的例子来澄清我的问题。

我有一个 Element 类型的结构列表。

Element** list1 = {A, B, C, D, E F}

还有第二个列表

Element** list2 = {B, E}

现在我想删除 list1 中也包含在 list2 中的所有元素。我还希望重新分配我的 list1。

结果列表包含元素 {A, C, D, F}。

使用的数据结构必须是一个数组,因为我想非常快地查找索引上的元素。

我自己开发了一个解决方案。不幸的是我需要太多循环。

最佳答案

我可以给你 n*log(n) 解决方案,但这需要对象是可排序的。

  1. 对两个对象列表进行排序。//n*log(n)
  2. 遍历列表B,如果列表A中存在元素B[i],则将其删除,这可以在一个循环中完成。
  3. 如果要保留列表A的原始顺序,则需要直接从原始列表A中删除匹配的项。

关于c - 如何删除列表A中也在列表B中的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com