题解 | #找缺失数字#

找缺失数字

https://www.nowcoder.com/practice/7cf889cb5db44e46a2fcc21c415c0150

package main

import (
    "bufio"
    "os"
    "strings"
    "strconv"
    "math"
    "fmt"
)

func main() {
    sc := bufio.NewScanner(os.Stdin)
    for sc.Scan() {
        strs := strings.Split(sc.Text(), ",")
        arr := make([]int, 0, len(strs))
        var number, sum int
        for _, str := range strs {
            number, _ = strconv.Atoi(str)
            sum += number
            arr = append(arr, number)
        }
        // 假设数组序列为 0 1 2 3 4 5 
        // 为了得到第一个缺失值,我们需要计算从 0 ~ 6 的和,然后减去数组的和
        // 0 1 2 3 4 6 
        // 在这种数组序列条件下,我们仍然是计算 0 ~ 6 的和(因为确实一个元素,导致后面元素都变大了),然后减去数组的和
        sum1 := calculateSum(arr[0], arr[0]+len(arr))
        fmt.Println(int(math.Abs(float64(sum1-sum))))
    }
}

func calculateSum(left int, right int) int {
    return (left+right)*(right-left+1)/2
}

全部评论

相关推荐

05-19 15:21
已编辑
门头沟学院 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务