funcreverseArray(arr []int)[]int{
length :=len(arr)for i :=0; i < length/2; i++{
temp := arr[length-1-i]
arr[length-1-i]= arr[i]
arr[i]= temp
}return arr
}
删除数组最大值, 不排序
funcdelMax(arr []int)[]int{iflen(arr)<=1{return arr
}
max := arr[0]
maxIndex :=0for i :=1; i <len(arr); i++{if max < arr[i]{
max = arr[i]
maxIndex = i
}}//fmt.Printf("maxVal=%v, maxIndex=%v", max, maxIndex)returnappend(arr[:maxIndex], arr[maxIndex+1:]...)}
查找无序数组第k大的数
funcfindKthLargest(arr []int,k int)int{returnfindK(arr, k,0,len(arr)-1)}funcfindK(array []int, k, start, end int)int{
l := start
r := end
pivot := array[l]for l < r {for l < r && array[r]<= pivot {
r--}
array[l]= array[r]for l < r && array[l]>= pivot {
l++}
array[r]= array[l]}
array[r]= pivot
if r == k-1{return pivot
}elseif r > k-1{returnfindK(array, k, start, r-1)}else{returnfindK(array, k, r+1, end)}}
数组去重去空,利用数组
funcremoveDuplicatesAndEmpty(arr []string)(newArr []string){
sort.Strings(arr)for i :=0; i <len(arr); i++{if(i >0&& arr[i]== arr[i-1])||len(arr)==0{continue}
newArr =append(newArr, arr[i])}return}
数组去重去空,利用map
funcremoveMap(arr []string)(newArr []string){
m :=make(map[string]bool)//map的值不重要var result []stringfor_, v :=range arr {if_, ok := m[v];!ok {
result =append(result, v)
m[v]=true}}return result
}