Day21

作者: wendy_要努力努力再努力 | 来源:发表于2017-11-24 14:00 被阅读0次
    1. Degree of an Array
      对于哈希表、字典这些概念,看了不少资料,还是似懂非懂,哎。
      思路:题目定义数组中元素出现频数最大的称为数组的度,要找到度相同的子数组中长度最短的。那就记录每个数字出现的最小下标和最大下标,统计所有数字的长度,最大的长度即为degree,找到符合这个degree的数字的最小长度。题目会用到字典,好吧,又把我绕晕了。到底什么是key 什么是value 还有字典的初始化,字典的属于关系v in p ,v到底是指key还是value
    def findShortestSubArray(self, nums):
            c = collections.Counter(nums)   # collections是3.0版本的
            first, last = {}, {}
            for i, v in enumerate(nums):
                first.setdefault(v, i)      #如果字典中包含有给定键v,则返回该键对应的值,如果键不存在于字典中,将会添加键并将值设为默认值。
                last[v] = i
            degree = max(c.values())
            return min(last[v] - first[v] + 1 for v in c if c[v] == degree)
    

    相关文章

      网友评论

          本文标题:Day21

          本文链接:https://www.haomeiwen.com/subject/tgwxbxtx.html