日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 281. 锯齿迭代器(map+vector)

發(fā)布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 281. 锯齿迭代器(map+vector) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給出兩個一維的向量,請你實現(xiàn)一個迭代器,交替返回它們中間的元素。

示例: 輸入: v1 = [1,2] v2 = [3,4,5,6] 輸出: [1,3,2,4,5,6]解析: 通過連續(xù)調(diào)用 next 函數(shù)直到 hasNext 函數(shù)返回 false,next 函數(shù)返回值的次序應(yīng)依次為: [1,3,2,4,5,6]。拓展:假如給你 k 個一維向量呢?你的代碼在這種情況下的擴展性又會如何呢?拓展聲明:“鋸齒” 順序?qū)τ?k > 2 的情況定義可能會有些歧義。所以,假如你覺得 “鋸齒” 這個表述不妥,也可以認為這是一種 “循環(huán)”。例如: 輸入: [1,2,3] [4,5,6,7] [8,9] 輸出: [1,4,8,2,5,9,3,6,7].

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/zigzag-iterator
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

class ZigzagIterator {map<int, vector<int>> m;unordered_map<int,int> idx;int total = 0;map<int, vector<int>>::iterator it; public:ZigzagIterator(vector<int>& v1, vector<int>& v2) {m[0] = v1;m[1] = v2;it = m.begin();idx[0] = 0;idx[1] = 0;total += v1.size()+v2.size();}int next() {if(!hasNext())return -1;if(it == m.end())it = m.begin();//循環(huán)if(idx[it->first] == it->second.size()){ //該數(shù)組指針到結(jié)尾了m.erase(it++);//刪除該數(shù)組,移動到下一個數(shù)組return next();}int val = it->second[idx[it->first]];//答案值idx[it->first]++;//數(shù)組遍歷位置+1it++;//去下一個數(shù)組total--;//總數(shù)-1return val;}bool hasNext() {return total;} };

12 ms 8.6 MB


長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進步!

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的LeetCode 281. 锯齿迭代器(map+vector)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。