博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找到一组数据中第一个没有重复的数字-一个面试题
阅读量:6794 次
发布时间:2019-06-26

本文共 1115 字,大约阅读时间需要 3 分钟。

今天面试官现场出了一个面试题,刚开始想用队列,后面灵机一动想到这种方式,当时说了解题思路,回来用golang实现了一下。

package main/****  给定一组数据,找出第一个没有重复的数***/import (    "fmt")func main() {    data := [6]float64{30.2, 31.5, 32.5, 31.5, 30.5, 30.2}    val := getFirst(data[0:])    fmt.Println(val)}func getFirst(data []float64) float64 {        if len(data) == 0 {            return -1        }    intData := make([]int64, len(data))    var max, min int64    /***    * 找出最大, 最小值,对小数整形化    **/    for index, val := range data {        tempVal := int64(val * 10)        intData[index] = tempVal        if max == 0 {            max = tempVal        }        if min == 0 {            min = tempVal        }        if max < tempVal {            max = tempVal        }        if min > tempVal {            min = tempVal        }    }    /***    * 构建去重数组    **/    bitList := make([]int16, max-min+1)    for _, val := range intData {        bitList[val-min] += 1    }    /***    * 找出第一个没有重复的数    **/    for index, val := range data {        if bitList[intData[index]-min] == 1 {            return val        }    }    return -1}

转载于:https://www.cnblogs.com/warrior/p/9514945.html

你可能感兴趣的文章
tomcat 设置编码
查看>>
javadoc工具生成自己的API文档
查看>>
微服务框架下的思维变化-OSS.Core基础思路
查看>>
android viewHolder处理listView滑动
查看>>
JAVA泛型——转
查看>>
Python 中因urllib2/urlib遭遇的进程阻塞问题
查看>>
C++初学者请进--------关于学好C++的经典资料汇总
查看>>
checkbox设置复选框的只读效果不让用户勾选
查看>>
Golang 源码阅读 os.File
查看>>
IE 6 下出现 双倍距离 以及解决方案
查看>>
LayaAir 自旋转的小球跟随鼠标移动
查看>>
linux nginx 指定目录不可执行php文件
查看>>
django环境搭建
查看>>
共享 iOS沙盒文件管理
查看>>
MIME
查看>>
CMPopTipView
查看>>
windows系统下安装虚拟机-mac系统-视频教程
查看>>
spring ContentNegotiatingViewResolver---负责调用不同的j
查看>>
嵌入式Linux C编程 03
查看>>
华为聚簇表聚簇索引原理
查看>>