国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Zigzag Iterator

Meathill / 1154人閱讀

摘要:題目鏈接這道題是說(shuō)有兩個(gè),來(lái)回返回兩個(gè)里面的值,要求用來(lái)做。所以可以用兩個(gè)來(lái)分別存這兩個(gè)的值,再用一個(gè)指針來(lái)表示現(xiàn)在應(yīng)該取哪個(gè)里面的值。這里用之后,如果一個(gè)循環(huán)結(jié)束,可以直接把它移除,然后就可以直接判斷是否是空。

Zigzag Iterator

題目鏈接:https://leetcode.com/problems...

這道題是說(shuō)有兩個(gè)list,來(lái)回返回兩個(gè)list里面的值,要求用iterator來(lái)做。所以可以用兩個(gè)iterator來(lái)分別存這兩個(gè)list的值,再用一個(gè)int指針來(lái)表示現(xiàn)在應(yīng)該取哪個(gè)list里面的值。

public class ZigzagIterator {
    Iterator l1, l2;
    int point;
    public ZigzagIterator(List v1, List v2) {
        l1 = v1.iterator();
        l2 = v2.iterator();
        point = 0;
    }

    public int next() {
        if(!hasNext()) return -1;
        if(point == 0) {
            point = 1;
            return l1.next();
        }
        else {
            point = 0;
            return l2.next();
        }
    }

    public boolean hasNext() {
        if(!l1.hasNext() && point == 0) point = 1;
        if(!l2.hasNext() && point == 1) point = 0;
        return l1.hasNext() || l2.hasNext();
    }
}

如果要擴(kuò)展成k個(gè)list,那么可以用一個(gè)list來(lái)存所有的list里面的值。還是需要一個(gè)指針,思路和兩個(gè)的時(shí)候差不多。這里用list之后,如果一個(gè)iterator循環(huán)結(jié)束,可以直接把它移除,然后next()就可以直接判斷l(xiāng)ist是否是空。

public class ZigzagIterator {
    List> list;
    int point;
    public ZigzagIterator(List v1, List v2) {
        list = new LinkedList();
        if(v1 != null) list.add(v1.iterator());
        if(v2 != null) list.add(v2.iterator());
        point = 0;
    }

    public int next() {
        int result = list.get(point).next();
        point = (point + 1) % list.size();
        return result;
    }

    public boolean hasNext() {
        if(list.get(point).hasNext()) return true;
        int i = point;
        while(i < list.size()) {
            if(!list.get(i).hasNext()) list.remove(i);
            else return true;
        }
        while(list.size() > 0) {
            if(!list.get(0).hasNext()) list.remove(0);
            else {
                point = 0;
                return true;
            }
        }
        return false;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/66558.html

相關(guān)文章

  • [Leetcode] Zigzag Iterator Z形迭代器

    摘要:用變量和取模來(lái)判斷我們?cè)撊×斜碇械牡趲讉€(gè)迭代器。同樣,由于每用完一個(gè)迭代器后都要移出一個(gè),變量也要相應(yīng)的更新為該迭代器下標(biāo)的上一個(gè)下標(biāo)。如果迭代器列表為空,說(shuō)明沒(méi)有下一個(gè)了。 Zigzag Iterator Given two 1d vectors, implement an iterator to return their elements alternately. For exa...

    SolomonXie 評(píng)論0 收藏0
  • 【LC總結(jié)】Iterator題目<Zigzag 1&2><BST>&

    摘要:方法直接查找數(shù)組的位的迭代器,調(diào)用方法得到的整數(shù)即為要返回的元素。再寫(xiě)迭代器的方法返回指針元素的并讓指針通過(guò)遞歸方法指向下一個(gè)元素。 Zigzag Iterator Problem Given two 1d vectors, implement an iterator to return their elements alternately. Example Given two 1d ...

    WelliJhon 評(píng)論0 收藏0
  • leetcode 341 Flatten Nested List Iterator 以及其他Iter

    摘要:返回的是表示是否走到了結(jié)尾。起到的就是緩存作用,因?yàn)檎{(diào)用之后馬上就走到下一個(gè)了。如果調(diào)用,返回用得到和最初的輸入相同的做相同的步驟存入不斷拆開(kāi)得到結(jié)果。思想就是來(lái)自括號(hào),后面也會(huì)跟進(jìn)的專(zhuān)題 Iterator其實(shí)就是一個(gè)單鏈表,無(wú)法回頭看。java里很多數(shù)據(jù)結(jié)構(gòu)都有這個(gè)接口,使用時(shí)需要initalize,得到一個(gè)iterator. 調(diào)用next()返回的是一個(gè)object, 指向的是下一...

    chaosx110 評(píng)論0 收藏0
  • [LintCode/LeetCode] Binary Tree Zigzag Level Orde

    Problem Given a binary tree, return the zigzag level order traversal of its nodes values. (ie, from left to right, then right to left for the next level and alternate between). Example Given binary tr...

    AlphaGooo 評(píng)論0 收藏0
  • [LeetCode] ZigZag Conversion

    摘要:很奇葩的題目,先將轉(zhuǎn)化為字符數(shù)組,便于操作。再看要求轉(zhuǎn)化為多少行,就建立多大的數(shù)組。 Problem The string PAYPALISHIRING is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed ...

    TIGERB 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<