看板 Marginalman 關於我們 聯絡資訊
※ 引述《oinishere (是oin捏)》之銘言: : 思路: : 笑死 : 直接用陣列做monotonic stack : 很白癡可是很簡單 : 只要裡面有一個以上的東西 : 就要改變他們的串接關係 : 然後傳第一個就不用重新全串了 : class Solution { : public: : ListNode* removeNodes(ListNode* head) : { : ListNode* preh = new ListNode(0,head); : vector<ListNode*> paper; : ListNode* n = head; : while(n) : { : while(!paper.empty() && paper[paper.size()-1]->val < n->val) : { : paper.pop_back(); : } : paper.push_back(n); : if(paper.size()>1) : { : paper[paper.size()-2]->next = paper[paper.size()-1]; : } : n = n->next; : } : return paper[0]; : } : }; 想法: 一樣,但沒開array C# code: public class Solution { public ListNode RemoveNodes(ListNode head) { var stack = new Stack<ListNode>(); var current = head; while (current != null) { while (stack.Count != 0 && stack.Peek().val < current.val) { stack.Pop(); } if (stack.Count != 0) { stack.Peek().next = current; } else { head = current; } stack.Push(current); current = current.next; } return head; } } -- (づ′・ω・)づ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.51.52 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1714974724.A.F14.html
oinishere: 我把vector當stack用 結果我好像沒用過stack 05/06 13:54
SecondRun: 噢 我才發現你沒有stack 05/06 13:56
wu10200512: 我忘記c++的stack是linked list還areay 做的 05/06 13:57
wu10200512: 應該是linked list 我剛剛查了一下 stack跟queue被de 05/06 13:59
wu10200512: que取代 05/06 13:59