問(wèn)題:由n-1個(gè)整數(shù)組成的未排序數(shù)組,元素都是1~n的不同整數(shù),找出其中缺失的整數(shù)
方法一:
思路:是原數(shù)組的和 減去 丟失元素后的數(shù)組的和,就得到丟失的元素了
代碼如下:
package main
import (
"errors"
"fmt"
)
func getMissingElement(arr []int) int {
var sumA, sumB int
if arr == nil || len(arr) = 0 {
errors.New("空數(shù)組")
}
for k, v := range arr {
sumA += v
sumB += k
}
sumB = sumB + len(arr)*2 + 1
return sumB - sumA
}
func main() {
var arr []int
arr = []int{1, 3, 2, 6, 5, 7, 8}
fmt.Println(getMissingElement(arr))
}
結(jié)果:4
補(bǔ)充:golang菜鳥(niǎo)常見(jiàn)的坑----golang切片與數(shù)組
切片與數(shù)組的區(qū)別:
數(shù)組(array:=[len]int{})一旦聲明定義,便會(huì)有固定的長(zhǎng)度(len),固定的容量(cap),且數(shù)組不能修改長(zhǎng)度。
切片(slice:=[]int{})定義之后,長(zhǎng)度(len)、容量(cap)可以不固定!
如下圖所示:slice s再聲明之后還可以追加元素。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- golang json數(shù)組拼接的實(shí)例
- Golang 如何判斷數(shù)組某個(gè)元素是否存在(isset)
- golang移除數(shù)組中重復(fù)的元素操作
- golang將切片或數(shù)組根據(jù)某個(gè)字段進(jìn)行分組操作
- golang求連續(xù)子數(shù)組的最大和實(shí)例
- golang實(shí)現(xiàn)整型和字節(jié)數(shù)組之間的轉(zhuǎn)換操作
- Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset)