返回

根据元素是否出现在另一个数组中拆分数组

发布时间:2022-08-04 21:37:20 310

在这种情况下,我有两个数组

oldIDs = [1, 2]
newIDs = [2, 3, 4]

问题:
“如何拆分”;新ID“;进入[2],[3,4]]?

说明:
2是旧id(存在于oldIDs)
3&4是新ID(在中不存在)oldIDs)


其他示例:

oldIDs = [1]
newIDs = [1, 2]
// the result should be [[1], [2]]

oldIDs = [1, 3, 5]
newIDs = [3, 4, 7, 8]
// the result should be [[3], [4, 7, 8]]

这就是我用围棋所做的。

func splitIDs(oldIDs []int64, newIDs []int64) (arr1 []int64, arr2 []int64) {
    for _, newID := range newIDs {
        if contains(oldIDs, newID) {
            arr1 = append(arr1, newID)
        }
    }
    for _, newID := range newIDs {
        if !contains(oldIDs, newID) {
            arr2 = append(arr2, newID)
        }
    }
    return
}

func contains(a []int64, x int64) bool {
    for _, n := range a {
        if x == n {
            return true
        }
    }
    return false
}

这也可以分为两个数组,不一定是二维数组。

我真的很感激有人能解决我的问题或改进我的解决方案。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
相关帖子