cyxr001 2017-10-23 08:02 采纳率: 60%
浏览 1215
已采纳

一个数组分类的小算法问题

有点像是数据结构的问题
比如一个数组a=[6,9,48,51,7,55]
我按里面相差不超过1,就能分出[6,7] [9] [48] [51] [55]
我按里面相差不超过3,就能分出[6,9,7] [48,51] [55]
我按里面相差不超过5,就能分出[6,9,7] [48,51,55]

请问下大神们怎么用c或者python实现

  • 写回答

3条回答 默认 最新

  • 肥宅_Sean 2017-10-28 07:03
    关注

    用Python写了一个

     def f(l, n):
        l.sort()
        ans = []; i = 0
        while i < len(l):
            temp = [l[i]]  # 到这就必须是一个新的类了
            i += 1  # 判断下一个
            while i < len(l) and l[i] - l[i - 1] <= n:
                temp.append(l[i])
                i += 1
            else:
                ans.append(temp)
        return ans
    

    欢迎关注我的公众号: 肥宅Sean笔记

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • threenewbee 2017-10-23 10:51
    关注

    建立二维数组作为结果存放
    排序,然后依次比较前后两个差别是多少,如果超过n,就放在下一个数组下标,放进去。

    评论
  • Enmm 2017-10-25 12:27
    关注

    两个数组 一个存放数据 一个存放所属集合
    首先对数据排序 然后循环 如果符合条件将所属集合设为相同 否则集合序号加一 将目前判断数放入其中

    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 (关键词-聊天软件)
  • ¥15 求大家看看这个编程的编法没有思路啊
  • ¥20 WSL打开图形化程序子窗口无法点击
  • ¥15 Jupyter Notebook 数学公式不渲染
  • ¥20 ERR_CACHE_MISS 确认重新提交表单
  • ¥20 关于vba使用HTMLfile执行js函数问题
  • ¥60 悬赏求解,通过实时现场摄像头的视频图像识别其他对家打出的麻将牌,识别麻将牌,识别牌墙位置,通过识别对家打出了什么牌
  • ¥15 关于#GPU jetson#的pcie驱动开发问题,如何解决?
  • ¥15 stm32f103zet6 串口5无法收发数据
  • ¥15 关于C语言使用线程队列实现多线程并发