zoukankan      html  css  js  c++  java
  • [leetcode]K Empty Slots

    使用bucket

    class Solution:
        def kEmptySlots(self, bulbs: List[int], K: int) -> int:
            size = len(bulbs) // (K + 1) + 1
            maxBuckets = [None] * size
            minBuckets = [None] * size
            for i in range(len(bulbs)):
                bulb = bulbs[i]
                bucket = bulb // (K + 1)
                if not maxBuckets[bucket] or maxBuckets[bucket] < bulb:
                    maxBuckets[bucket] = bulb
                if not minBuckets[bucket] or minBuckets[bucket] > bulb:
                    minBuckets[bucket] = bulb
                if bucket != 0 and maxBuckets[bucket - 1]:
                    if minBuckets[bucket] - maxBuckets[bucket - 1] == K + 1:
                        return i + 1
                if bucket != size - 1 and minBuckets[bucket + 1]:
                    if minBuckets[bucket + 1] - maxBuckets[bucket] == K + 1:
                        return i + 1
            return -1
    

    使用Java的TreeSet

    class Solution {
        public int kEmptySlots(int[] bulbs, int K) {
            TreeSet<Integer> set = new TreeSet();
            for (int i = 0; i < bulbs.length; i++) {
                Integer higher = set.higher(bulbs[i]);
                if (higher != null && higher - bulbs[i] == K + 1) 
                    return i + 1;
                Integer lower = set.lower(bulbs[i]);
                if (lower != null && bulbs[i] - lower == K + 1)
                    return i + 1;
                set.add(bulbs[i]);
            }
            return -1;
        }
    }
    

      

  • 相关阅读:
    BZOJ3781 小B的询问
    BZOJ3757 苹果树
    BZOJ1491 [NOI2007]社交网络
    BZOJ3754 Tree之最小方差树
    BZOJ1251 序列终结者
    BZOJ2259 [Oibh]新型计算机
    BZOJ1043 [HAOI2008]下落的圆盘
    D. 预定义变量
    A. 变量命名原则
    B. PHP变量的特点
  • 原文地址:https://www.cnblogs.com/lautsie/p/12242649.html
Copyright © 2011-2022 走看看