問題:由n-1個整數組成的未排序數組,元素都是1~n的不同整數,找出其中缺失的整數
方法一:
思路:是原數組的和 減去 丟失元素后的數組的和,就得到丟失的元素了
代碼如下:
package main
import (
"errors"
"fmt"
)
func getMissingElement(arr []int) int {
var sumA, sumB int
if arr == nil || len(arr) = 0 {
errors.New("空數組")
}
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))
}
結果:4
補充:golang菜鳥常見的坑----golang切片與數組
切片與數組的區別:
數組(array:=[len]int{})一旦聲明定義,便會有固定的長度(len),固定的容量(cap),且數組不能修改長度。
切片(slice:=[]int{})定義之后,長度(len)、容量(cap)可以不固定!
如下圖所示:slice s再聲明之后還可以追加元素。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- golang json數組拼接的實例
- Golang 如何判斷數組某個元素是否存在(isset)
- golang移除數組中重復的元素操作
- golang將切片或數組根據某個字段進行分組操作
- golang求連續子數組的最大和實例
- golang實現整型和字節數組之間的轉換操作
- Golang 如何判斷數組某個元素是否存在 (isset)