package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param input int整型一维数组
* @param k int整型
* @return int整型一维数组
*/
func GetLeastNumbers_Solution( input []int , k int ) []int {
headify(input, len(input)-1)
result:=[]int{}
for i:=0;i<k;i++{
result=append(result, input[0])
input=input[1:]
headify(input, len(input)-1)
}
return result
}
func headify(arr []int,size int){
for i:=(size-1);i>=0;i--{
shift(arr, i, size)
}
}
func shift(arr []int,i int,len int){
left:=2*i+1
right:=2*i+2
if right<len && arr[right]<arr[i]{
arr[i],arr[right]=arr[right],arr[i]
}
if left<len && arr[left]<arr[i]{
arr[i],arr[left]=arr[left],arr[i]
}
}