LINUX.ORG.RU

История изменений

Исправление qulinxao3, (текущая версия) :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        return (u:=set())or(d:={})or max(
            (u.add(q)or d.__setitem__(r,l)or d.__setitem__(l,r)or(r-l+1)
                for l,q,r in ( (d.get(q-1,q),q,d.get(q+1,q) ) 
                                for q in nums if q not in u))
        ,default=0)

Исправление qulinxao3, :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        u,d=set(),{}
        return max(
            (u.add(q)or d.__setitem__(r,l)or d.__setitem__(l,r)or(r-l+1)
                for l,q,r in ( (d.get(q-1,q),q,d.get(q+1,q) ) 
                                for q in nums if q not in u))
        ,default=0)

Исправление qulinxao3, :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        u,d,o=set(),{},0
        for l,q,r in ( (d.get(q-1,q),q,d.get(q+1,q) ) 
                        for q in nums if q not in u):
            u.add(q)
            d[r],o,d[l]=l,max(o,r-l+1),r
        return o

Исправление qulinxao3, :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        u,d,o=set(),{},0
        for l,q,r in (
            (   d[p] if(p:=q-1)in d else q,
                q,
                d[p] if(p:=q+1)in d else q) 
                        for q in nums if q not in u):
            u.add(q)
            d[r],o,d[l]=l,max(o,r-l+1),r
        return o

Исправление qulinxao3, :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        u,d,o=set(),{},0
        for l,r in ((q,q) for q in nums if q not in u):
            u.add(l)
            l=d[p] if(p:=l-1)in d else l
            r=d[q] if(q:=r+1)in d else r
            d[r],d[l]=l,r
            o=max(o,r-l+1)
        return o

Исправление qulinxao3, :

class Solution: def longestConsecutive(self, nums: List[int]) -> int: u,d,o=set(),{},0 for l,r in ((q,q) for q in nums if q not in u): u.add(l) l=d

if(p:=l-1)in d else l r=d[q] if(q:=r+1)in d else r d[r],d[l]=l,r o=max(o,r-l+1) return o

Исходная версия qulinxao3, :

class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        u,d,o=set(),{},0
        for l,r in zip(nums,nums):
            if l not in u:
                u.add(l)
                l=d[p] if(p:=l-1)in d else l
                r=d[q] if(q:=r+1)in d else r
                d[r],d[l]=l,r
                o=max(o,r-l+1)
        return o