go陣列取交集擷取

2022-06-25 12:12:14 字數 1894 閱讀 1217

golang獲取交集沒有php那樣的array的操作函式,只能 for 迴圈判斷

package main

import (

"log""

sort")

func main()

//宣告乙個切片, 不需要指定長度

var slice = string

{} log.println(arr)

//[ ]

log.println(slice) //

//使用make方法建立切片, 初始大小為0, 最大大小為10, 設定乙個足夠大的最大值, 會使得切片獲得更高的效能

var a = make(string, 0, 10

)

//給切片a新增乙個物件

dog"

)

//給切片新增多個物件

cat", "

fish

", "

bird

", "

menkey")

//合併兩個切片, {}...是解構陣列

dog2

", "

cat2

", "

fish2

", "

bird2

", "

menkey2

"}...)

//檢視切片長度

log.println(len(a))

//檢視切片的最大長度

log.println(cap(a))

//擷取切片

a = a[1:6] //

保留a[1], a[2], [3], a[4], a[5]

//切片刪除 a[2], a...是解構陣列

:]...)

//切片插入元素 a[2] = "newa2"

newa2")

:]...)

//切片公升序排序")

sort.strings(a)

log.println(a)

//

//切片降序排序

sort.sort(sort.reverse(sort.stringslice(a)))

log.println(a)

//

//切片的拷貝

tempcopy := make(string

, len(a))

copy(tempcopy, a)

//切片的遍歷

for i, v :=range a

//切片的去重

a1 := string

a2 := string

{}

for _, v1 :=range a1

}ifcanadd

}log.println(

"去重:

", a2) //

去重: [dog cat fish]

//切片交集

b_one := string

b_two := string

b2 := string

{}

for _, v1 :=range b_one

}ifcanadd

}log.println(

"交集:

", b2) //

交集: [dog cat fish]

//切片指標

//切如果動態修改了大小, go會建立乙個新的切片, 位址就變化了, 如果要獲得一直獲得記憶體位址, 可以使用切片指標

var b string

var p = &b

dog"

) log.println(*p)

cat"

) log.println(*p)

}

**自:

陣列取交集

題目 給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 方法一 set 主要利用set去重。class solution for int i...

JS陣列取交集 並集

如果陣列中僅是字串和數值 var a 1 2,3 b 2 3,4 5 交集 2,3 var intersection a.filter item b.indexof item 1 並集 1,2,3,4,5 var union a.concat b.filter item a.indexof item...

時間取並交集的小工具(Go)

如求並集 1,2 4,5 5,9 結果是 1,2 4,9 求所有的交集為 但是求相交部分為 1,2 5,5 三個型別,對應下面三個小函式 type timeinterval struct type timeslice timeinterval 求全域性的並集 func ts timeslice un...