求序列组合后最大的递增次数

给出n个数,后一个数比前一个数大,count++,问这n个数怎么排列,能使count最大?
全部评论
对数组进行非递减排序,这样得到的count是最大的吧?
点赞 回复 分享
发布于 2017-11-17 17:03
上贴想法的 Python 实现 class ListNode(object):     def __init__(self, c):         self.c = c         self.next = None         self.prev = None def max_count(lst): # 返回最大count     if len(lst) <= 1:         return 0     lst.sort() # 创建链表     head = node = ListNode(0)     pre_num = None     for n in lst:         if pre_num == n:             node.c += 1         else:             nnode = ListNode(1)             nnode.prev = node             node.next = nnode             node = nnode         pre_num = n     count = 0     while head.next:         thead = head.next         ncount = 0         while thead:             ncount += 1             thead.c -= 1             nnode = thead.next             del_node(thead)             thead = nnode         count += ncount - 1     return count def del_node(tmp):     if tmp.c == 0:         tmp.prev.next = tmp.next         if tmp.next:             tmp.next.prev = tmp.prev
点赞 回复 分享
发布于 2017-11-17 18:43
就是拍个序吧
点赞 回复 分享
发布于 2017-11-18 01:01

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务