Upon solving the problem 'contain duplicates` in leetcode:


> Given an array of integers and an integer *k* , find out whether there are two distinct indices *i* and *j* in the array such that **nums[i] = nums[j]** and the **absolute** difference between *i* and *j* is at most *k* .
> 
> **Example 1:**
> 
>  ```
> 
>  Input: nums = [1,2,3,1] , k = 3 
> 
>  Output: true
> 
>  ```
> 
>  
> 
> **Example 2:**
>  
> 
>  ```
> 
>  Input: nums = [1,0,1,1] , k = 1 
> 
>  Output: true
> 
>  ```
> 
>  
> 
> **Example 3:**
>  
> 
>  ```
> 
>  Input: nums = [1,2,3,1,2,3] , k = 2 
> 
>  Output: false
> 
>  ```


I tried best  to write a Pythonic style solution and improve the performance.


    class Solution2:
        def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
            lookup = dict()  #{value:index}
    
            for cur, val in enumerate(nums):
                prev = lookup.get(val)
    
                if prev != None and cur - prev <= k: 
                    #logging.debug(f"{cur - prev}")
                    return True 
                lookup[val] = cur #add it to lookup 
    
            return False 


> Runtime: 68 ms, faster than 12.21% of Python3 online submissions for Contains Duplicate II.
Memory Usage: 20.4 MB, less than 13.64% of Python3 online submissions for Contains Duplicate II.

I am confused about the score. I was 100% assure that it was the best possible solution.

What's the problem with my solution?