邮局问题

邮局问题

15449382440870.jpg

分析:

1.首先根据第一个房子的位置,决定第一个邮局的位置

2.第一个邮局位置确定后,要注意邮局左右范围100内都为有效范围

3.依次继续,从超出范围的继续进行比对

结果示例:

房子位置: [11 101 201 208 298 302 378 456 555 567 588 612 654 721 789 801]
邮局位置: [111 398 655 889]
邮局个数: 4

代码:

package main

import "fmt"

func postOffice(H []int64) []int64 {
    P := []int64{}
    if len(H) == 0 {
        return P
    }
    // 第一个邮局位置
    P = append(P, H[0]+100)

    // 中间邮局位置
    for i := 1; i < len(H); i++ {
        if H[i] > P[len(P)-1]+100 {
            P = append(P, H[i]+100)
        }
    }

    return P
}
func main() {
    H := []int64{11, 101, 201, 208, 298, 302, 378, 456, 555, 567, 588, 612, 654, 721, 789, 801}
    P := postOffice(H)
    fmt.Println("房子位置:",H)
    fmt.Println("邮局位置:",P)
    fmt.Println("邮局个数:",len(P))
}


推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 7,765评论 6 13
  • Java实例教程(下) Java当前日期/时间Java将字符串转换为日期Java当前工作目录Java正则表达式Ja...
    茶茶点阅读 6,510评论 2 32
  • 如果图片无法读取 请关注公众号查看详情 微信公众号:zuanmtv0921 每天红包一个不漏 中节能琅园上午10点...
    赚女某体阅读 125评论 0 0
  • 二叉判定树 描述折半查找过程的二叉树为判定树。 判定树首先是一个二叉排序树,具有n个结点的判定树,与具有n个结点的...
    Arya鑫阅读 5,820评论 0 0
  • 回顾一下这几年,关键词:浪子回头、自我赋能、立己达人。 ·浪子回头 2017对于我来说,是浪子回头的一年。之所以这...
    Anna亚男阅读 699评论 0 3
  • 肥胖的原理 从食物中摄取到的热量大于体内所消耗的热量,多余的热量就会在体内留存慢慢转化成脂肪 营养餐搭配原则 遵循...
    营养师猴哥阅读 143评论 0 0
  • 我们不打算讲情怀,只理性地聊聊游戏。 “学习是快乐的兴奋剂” 说游戏之前,先说说“快乐”。快乐的来源有很多种,马斯...
    592f1becb5c9阅读 252评论 0 2