登录 主页

go算法入门(对数组去重, 并且计算出现的次数)

2023-04-10 09:17AM

 题目:

 需要实现这样的函数:
  对指定的数组进行分析,打印出某个元素出现的次数。 (提示:使用hash)
  print_occur_times(my_array)
  例如:
  my_array = [1,2,3,3,3,4,4,5,5,5,5,5,5,8,9,9]
  print_occur_times(my_array)
  结果:
  1: 1   # 1出现1次
  2: 1   # 2出现1次
  3: 3   # 3出现3次
  4: 2   # 4出现2次。
  5: 6
  8: 1
  9: 2

代码如下:

package main
import "fmt"
func main() {
  // 创建一个包含重复元素的整型数组
  arr := []int{1,2,3,4,5,1,3,2,1,2,4,1}
  // 声明一个map,键值类型(key)为数组元素类型,值类型为int,表示元素出现次数
  hash := make(map[int]int)
  // 遍历数组,将每个元素插入map中
  // 如果元素已经存在,计数器加一;如果不存在,则插入并将计数器置为1
  for _, arr := range arr{
    if _, ok := hash[arr]; ok{
      hash[arr]++
    }else{
      hash[arr] = 1
    }
  }
  // 遍历map,输出重复元素和出现次数
  for arr, hash := range hash{
    if hash >= 1{
      fmt.Printf("%d出现了%d次\n", arr, hash)
    }
  }
}

结果:

1出现了1次
2出现了2次
3出现了3次
4出现了4次
5出现了5次

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论