• LeetCode 284. Peeking Iterator


    题目

    再维护一个iterator ,用来实现peek

    /*
     * Below is the interface for Iterator, which is already defined for you.
     * **DO NOT** modify the interface for Iterator.
     *
     *  class Iterator {
     *		struct Data;
     * 		Data* data;
     *		Iterator(const vector<int>& nums);
     * 		Iterator(const Iterator& iter);
     *
     * 		// Returns the next element in the iteration.
     *		int next();
     *
     *		// Returns true if the iteration has more elements.
     *		bool hasNext() const;
     *	};
     */
    
    class PeekingIterator : public Iterator {
    public:
        Iterator* iter;
        int _next;
    	PeekingIterator(const vector<int>& nums) : Iterator(nums) {
    	    // Initialize any member here.
    	    // **DO NOT** save a copy of nums and manipulate it directly.
    	    // You should only use the Iterator interface methods.
            iter = new Iterator(nums);
            if(nums.size()!=0)
                _next = nums[0];
            if(iter->hasNext())
                iter->next();
    	    
    	}
    	
        // Returns the next element in the iteration without advancing the iterator.
    	int peek() {
            
            return _next;
            
    	}
    	
    	// hasNext() and next() should behave the same as in the Iterator interface.
    	// Override them if needed.
    	int next() {
            
            if(iter->hasNext())
                 _next = iter->next();
    	    return 	Iterator::next();
    	}
    	
    	bool hasNext() const {
    	    
            return Iterator::hasNext();
    	}
    };
    
  • 相关阅读:
    插入排序
    JavaMail学习笔记
    Struts2的工作原理
    我的快速排序
    截取字符串,只截取前N个字节的字符
    修改MyEclipse8.6中的Servlet.java模板
    Java类装载的过程及原理介绍
    cmd检查jdk的版本
    快速排序
    flash 侦测人的面部
  • 原文地址:https://www.cnblogs.com/dacc123/p/12910969.html
Copyright © 2020-2023  润新知