配列(交差OR並)
5814 ワード
仕事や面接では、いくつかの配列に対して交差や並列を求める場合がよくあります.このログでは、最も速く交差や並列を求め、重複データを削除する方法を説明しています.効率に影響を及ぼすアルゴリズムについては、ここでは説明しない.
配列求教と求並はいずれもSetという集合を用いる.このデータが存在するかどうかをより速くクエリーできます.
Algorithms
アルゴリズム導論
時間
説明
2015-11-25
アルゴリズムプロジェクト完了、博文完了
CSDN:http://blog.csdn.net/y550918116j
GitHub:https://github.com/937447974/Blog
配列求教と求並はいずれもSetという集合を用いる.このデータが存在するかどうかをより速くクエリーできます.
//
// ArrayIntersectUnion.swift
// ArrayIntersectUnion
//
// Created by yangjun on 15/11/25.
// Copyright © 2015 . All rights reserved.
//
import Cocoa
class ArrayIntersectUnion {
// MARK:
/// ,
///
/// - parameter array1 : 1
/// - parameter array2 : 2
///
/// - returns: array
func intersect(array1: Array<String>, _ array2: Array<String>) -> Array<String> {
var list = Array<String>()
var set = Set<String>()
//
for item in array1 {
set.insert(item)
}
//
for item in array2 {
if set.contains(item) {
list.append(item)
}
}
return list
}
// MARK:
///
///
/// - parameter array1 : 1
/// - parameter array2 : 2
///
/// - returns: array
func union(array1: Array<String>, _ array2: Array<String>) -> Array<String> {
var list = Array<String>()
var set = Set<String>()
// 1
for item in array1 {
if !set.contains(item) { // ,
set.insert(item)
list.append(item)
}
}
// 2
for item in array2 {
if !set.contains(item) {
set.insert(item)
list.append(item)
}
}
return list
}
}
その他
ソースコード
Algorithms
参考資料
アルゴリズム導論
ドキュメント変更レコード
時間
説明
2015-11-25
アルゴリズムプロジェクト完了、博文完了
著作権所有
CSDN:http://blog.csdn.net/y550918116j
GitHub:https://github.com/937447974/Blog