Java?C++題解leetcode1441用棧操作構(gòu)建數(shù)組示例
題目要求
思路:模擬【雙指針】
按題意模擬即可:
一個(gè)指針cur依次指向target中的每個(gè)元素,另一個(gè)指針i依次指向1∼n的數(shù)字;
對(duì)i所指向的每個(gè)數(shù)字進(jìn)行Push
操作,然后判斷當(dāng)前數(shù)字與target[cur]是否相等;
- 相等則判斷下一個(gè)數(shù)字,同時(shí)將cur指向下一個(gè)元素;
- 否則需進(jìn)行
Pop
操作。
過(guò)程中需注意cur的越界,當(dāng)其越界則target構(gòu)造完畢。
Java
class Solution { public List<String> buildArray(int[] target, int n) { List<String> res = new ArrayList<>(); for (int i = 1, cur = 0; i <= n && cur < target.length; i++) { res.add("Push"); if (target[cur] != i) res.add("Pop"); else cur++; } return res; } }
- 時(shí)間復(fù)雜度:O(n)
- 空間復(fù)雜度:O(1)
C++
class Solution { public: vector<string> buildArray(vector<int>& target, int n) { vector<string> res; for (int i = 1, cur = 0; i <= n && cur < target.size(); i++) { res.emplace_back("Push"); if (target[cur] != i) res.emplace_back("Pop"); else cur++; } return res; } };
- 時(shí)間復(fù)雜度:O(n)
- 空間復(fù)雜度:O(1)
Rust
impl Solution { pub fn build_array(target: Vec<i32>, n: i32) -> Vec<String> { let mut res = Vec::new(); let mut cur = 0; for i in 1..(n + 1) { if (cur < target.len()) { res.push(String::from("Push")); if (target[cur] != i) { res.push(String::from("Pop")); } else { cur += 1; } } } res } }
- 時(shí)間復(fù)雜度:O(n)
- 空間復(fù)雜度:O(1)
以上就是Java C++題解leetcode1441用棧操作構(gòu)建數(shù)組示例的詳細(xì)內(nèi)容,更多關(guān)于Java C++ 棧操作構(gòu)建數(shù)組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談Java中Map和Set之間的關(guān)系(及Map.Entry)
這篇文章主要介紹了淺談Java中Map和Set之間的關(guān)系(及Map.Entry),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09Java網(wǎng)絡(luò)編程之UDP協(xié)議詳細(xì)解讀
這篇文章主要介紹了Java網(wǎng)絡(luò)編程之UDP協(xié)議詳細(xì)解讀,UDP協(xié)議全稱是用戶數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無(wú)連接的協(xié)議,在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層,需要的朋友可以參考下2023-12-12Java?Swing實(shí)現(xiàn)QQ登錄頁(yè)面
這篇文章主要為大家詳細(xì)介紹了Java?Swing實(shí)現(xiàn)QQ登錄頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02詳解Java接口簽名(Signature)實(shí)現(xiàn)方案
這篇文章主要介紹了Java接口簽名(Signature)實(shí)現(xiàn)方案?,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01Java并發(fā)編程——volatile關(guān)鍵字
這篇文章主要介紹了Java并發(fā)編程——volatile關(guān)鍵字的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java并發(fā)編程,感興趣的朋友可以了解下2020-10-10淺談Java中強(qiáng)制類型轉(zhuǎn)換的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談Java中強(qiáng)制類型轉(zhuǎn)換的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05java 中List按照date排序的實(shí)現(xiàn)
這篇文章主要介紹了java 中List按照date排序的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-06-06