zoukankan      html  css  js  c++  java
  • 【leetcode】剑指 Offer 59

    //C语言
    typedef struct {
        int front;
        int back;
        int maxFront;
        int maxBack;
        int max[10001];
        int queue[10001];
    } MaxQueue;
    
    
    MaxQueue* maxQueueCreate() {
        MaxQueue* obj = (MaxQueue*)calloc(sizeof(MaxQueue),1);
        return obj;
    }
    
    int maxQueueMax_value(MaxQueue* obj) {
        return (obj->maxFront != obj->maxBack)?obj->max[obj->maxFront] :-1;
    }
    
    void maxQueuePush_back(MaxQueue* obj, int value) {
        while(obj->maxFront != obj->maxBack && obj->max[obj->maxBack-1] < value){
            obj->maxBack--;
        }
        obj->max[obj->maxBack++]=value;
        obj->queue[obj->back++]=value;
    }
    
    int maxQueuePop_front(MaxQueue* obj) {
        if(obj->front != obj->back){
            if(obj->queue[obj->front] == obj->max[obj->maxFront])
                obj->maxFront++;
            return obj->queue[obj->front++];
        }
        return -1;
    }
    
    void maxQueueFree(MaxQueue* obj) {
        free(obj);
    }
    
    /**
     * Your MaxQueue struct will be instantiated and called as such:
     * MaxQueue* obj = maxQueueCreate();
     * int param_1 = maxQueueMax_value(obj);
     
     * maxQueuePush_back(obj, value);
     
     * int param_3 = maxQueuePop_front(obj);
     
     * maxQueueFree(obj);
    */
  • 相关阅读:
    三、python语法(定义,赋值,注释,输入输出)
    二、Python安装
    一、python简介
    Java第十二天
    Java第十一天
    Java第十天
    Java第九天
    Java第八天
    Java第七天
    Java第六天
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14075701.html
Copyright © 2011-2022 走看看