zoukankan      html  css  js  c++  java
  • LC 683. K Empty Slots 【lock,hard】

    There is a garden with N slots. In each slot, there is a flower. The N flowers will bloom one by one in Ndays. In each day, there will be exactly one flower blooming and it will be in the status of blooming since then.

    Given an array flowers consists of number from 1 to N. Each number in the array represents the place where the flower will open in that day.

    For example, flowers[i] = x means that the unique flower that blooms at day i will be at position x, where i and x will be in the range from 1 to N.

    Also given an integer k, you need to output in which day there exists two flowers in the status of blooming, and also the number of flowers between them is k and these flowers are not blooming.

    If there isn't such day, output -1.

    Example 1:

    Input: 
    flowers: [1,3,2]
    k: 1
    Output: 2
    Explanation: In the second day, the first and the third flower have become blooming.
    

    Example 2:

    Input: 
    flowers: [1,2,3]
    k: 1
    Output: -1
    

    Note:

    1. The given array will be in the range [1, 20000].

    Runtime: 128 ms, faster than 89.38% of C++ online submissions for K Empty Slots.

    网上的解法。

    class Solution {
    public:
        int kEmptySlots(vector<int>& flowers, int k) {
            int n = flowers.size();
            vector<int> days(n, 0);
            for (int i = 0; i < flowers.size(); i++) {
                days[flowers[i] - 1] = i + 1;
            }
            int left = 0, right = k+1, ret = INT_MAX;
            for (int i = 0; right < n; i++) {
                if (days[i] < days[left] || days[i] <= days[right]) {
                    if (i == right) ret = min(ret, max(days[left], days[right]));
                    left = i;
                    right = i + k + 1;
                }
            }
            return ret == INT_MAX ? -1 : ret;
        }
    };
  • 相关阅读:
    实现 AD 采样,使用 LCD1602 显示 AD 数值
    数据结构(C语言)—排序
    Keil uVision4 创建51单片机工程
    51单片机 方波
    51单片机串口中断实验
    51单片机 中断控制蜂鸣器
    串口通信
    定时器与计数器
    中断系统
    《web前端设计基础——HTML5、CSS3、JavaScript》 张树明版 简答题简单整理
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10162317.html
Copyright © 2011-2022 走看看