go解题答案

  • 思路概括:每次找到最大的一个,然后放到数组里

  • 思路核心:

    import "math"
    func GetLeastNumbers_Solution( input []int ,  k int ) []int {
      if len(input)==0 || k>len(input){
          return []int{}
      }
      res:=[]int{}
      arr:=input
      h:=map[int]int{}
      for j:=0;j<k;j++{
           min:=math.MaxInt32
          for i:=0;i<len(arr);i++{ // 找到最小的
               if arr[i]<min{
                   min=arr[i]
                   h[arr[i]]=i
               } 
          }
          res=append(res,min)  // 将最小的存起来
          // 将已经选出的数从数组里删掉
          index:= h[min]
          arr1:=arr[0:index]
          if index<len(arr)-1{
              arr=arr[index+1:]
          arr=append(arr1,arr...) 
          }else{
              arr=arr1
          }
    
      }  
      return res
    }

    如果有帮助请点个赞哦, 更多文章请看我的博客

    题主背景

  • 从业8年——超级内卷500Q技术经理——目前专注go和微服务架构