Re: [閒聊] 每日leetcode已回收
看板Marginalman作者DJYOSHITAKA (franchouchouISBEST)時間1年前 (2024/05/07 21:16)推噓3(3推 0噓 5→)留言8則, 4人參與討論串198/1548 (看更多)
後來想想才知道可以像你板大神這樣inplace
一開始是想說會不會有從最右進位到最左的case 所以就直接用stack先存
但它是*2吼 而且carry最多是1
不管怎麼樣carry都不會傳超過一個digit
剩我浪費記憶體了
ListNode* doubleIt(ListNode* head) {
stack<ListNode*> s;
while(head)
{
s.push(head);
head = head->next;
}
int carry = 0;
ListNode* pre = NULL;
while(!s.empty())
{
ListNode* cur = s.top();
s.pop();
if(cur->val*2 + carry >= 10)
{
cur->val = cur->val*2 + carry - 10;
carry = 1;
}
else
{
cur->val = cur->val*2 + carry;
carry = 0;
}
cur->next = pre;
pre = cur;
}
ListNode *dummy = new ListNode(1);
dummy->next = pre;
return carry == 1 ? dummy : dummy->next;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.31.27 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715087810.A.290.html
※ 編輯: DJYOSHITAKA (114.137.31.27 臺灣), 05/07/2024 21:17:56
推
05/07 21:19,
1年前
, 1F
05/07 21:19, 1F
推
05/07 21:21,
1年前
, 2F
05/07 21:21, 2F
推
05/07 21:39,
1年前
, 3F
05/07 21:39, 3F
→
05/07 22:00,
1年前
, 4F
05/07 22:00, 4F
→
05/07 22:01,
1年前
, 5F
05/07 22:01, 5F
→
05/07 22:01,
1年前
, 6F
05/07 22:01, 6F
→
05/07 22:02,
1年前
, 7F
05/07 22:02, 7F
→
05/07 22:02,
1年前
, 8F
05/07 22:02, 8F
討論串 (同標題文章)
完整討論串 (本文為第 198 之 1548 篇):