Oh! You closed up the window, so you cannot see raining

[Diary] 自由的第二天

台南,有風的日子,23度。 今天比昨天早些起床, 或許是因為心中對自由工作的未知充滿期待。 中午,我決定去品嚐麻豆最有名的牛肉湯——阿榮牛肉湯。 搭配的肉燥飯,完全不輸專賣店的水準。 驚覺我竟想不起過去五六年,在公司餐廳吃過了什麼, 下午到了星巴克,點了一杯香檸蜜柚冷萃。 175元的價錢提醒著我,自己似乎已經不再是那個 可以隨意揮霍的身份了。 坐在那裡,整理著我的 Kanban, 規劃週末的恆春小旅行, 完成了記帳的任務, 還安排了接下來一週的工作計劃。 我想我會慢慢習慣這樣的節奏。 晚上接了女友一起去吃飯, 我們最愛的和津壽司卻沒開門, 於是隨意找了家壽喜燒店。 在飲料吧,我頑皮地調了一杯芒果冰沙加可樂, 瞬間被帶回了一中街多多茶坊的日子。 飯後,我們去了 Costco。 正逢 Black Friday,裡頭人山人海。 女友見到折扣標籤,興奮得像孩子一樣, 可惜需要的東西都沒有特價, 結果買了不少不需要的東西。 果然,這就是 Costco 的魅力吧。 臨走時,她看到食品區有開心果霜淇淋, 堅持要買一杯分享給我, 才發現原來小時候過年吃的那種瓜子的味道, 今天的 Leetcode 題目很應景, 正值 Premier 12 中華隊奪冠, 題目叫做 “Find Champion II”。 這是我的解法: class Solution { public: int findChampion(int n, vector<vector<int>>& edges) { int winner = 0; int cnt = 0; vector<bool> lose(n, false); for (const auto& e : edges) { int who = e[1]; if (!lose[who]) { lose[who] = true; cnt++; while (winner < n && lose[winner]) winner++; } } return cnt == n-1 ? winner : -1; } }; 一天的生活,從自由中找尋規律, 從規律中尋找價值。 希望未來某一天, 再次翻閱這篇日記, 能記起今天的點滴, 並為自己的成長感到自豪。 ...

November 26, 2024 · 1 分鐘 · intervalrain
Oh! You closed up the window, so you cannot see raining

[Diary] 成為 freelancer 的第一天

台南,天氣晴。 九點醒來,比平時晚了一個小時,沒有因為不需工作就睡到中午。 滑了手機,仍被中華隊奪冠的喜悅籠罩。 但身體沒有打算要偷懶, 早早的洗好我與她的衣服, 在家做起了家務, 這是平時我較少分擔的部分。 邊看著《影后》, 因為工作而累積的片單, 直到自由身才有一點喘息的空間可以觀影。 儘管,大多數劇情,早就在社群媒體上被爆了好幾次雷, 但自己看到片段時,更清楚劇情的前因後果,來龍去脈時, 一瞬間,彷彿從旁觀者晉身成了吃瓜群眾, 多了一絲參與感。 做完家務後,休息片刻, 才換好衣物出門覓食。 今天的台南是個大熱天, 悠悠的在麻豆市區繞了幾圈, 繞進一些不曾經過的小巷, 原來星巴克的周圍已經蓋了好幾排新的房子, 想當初初來乍到時, 星巴克還是塊空地。 我始終還是這塊土地的外來者。 繞了好久,腦中對今天的午餐還是沒有想法。 原來我早就被奴化成不用選擇的樣子。 進公司,隨手從 7-11 的架上拿一樣麵包, 結帳時向店員點一杯冰美式, 便匆匆回到工作崗位, 開始社畜的一天。 最後,在麻豆選擇了有名的阿蘭碗粿, 雖然我已經來到麻豆兩年了, 每次都是經過而沒有真正找個位置坐下來享用。 蒜蓉醬油和著油蔥酥, 原來這就是麻豆圓環口老是人車搶道的原因啊… 「要怎麼樣,才能解決這裡的塞車問題呢?」 沒有多餘的時間讓我思考這些, 我是一個 freelancer,也是一名失業者。 我是自願的,也是被迫的。 自願來自於我心甘情願遞上辭呈。 被迫來自於我心有不甘,覺得我的身心靈都被奴役到失去了靈魂。 如果我喜歡寫 App,我應該為自己寫,寫自己喜歡的 App。 而不是在角落一方,為他人的不合理的需求,埋首苦幹。 回家,開始盤點這段時間該做的事。 順便拿自己寫的專案管理網頁, 記下一些該做的事。 寫了一題 Leetcode, 很好,Hard 但是 one pass。 這是我的解法: class Solution { public: unordered_map<int, vector<int>> moves{{0,{1,3}},{1,{0,2,4}},{2,{1,5}},{3,{0,4}},{4,{3,5,1}},{5,{4,2}}}; int slidingPuzzle(vector<vector<int>>& b) { string s = to_string(b[0][0]) + to_string(b[0][1]) + to_string(b[0][2]) + to_string(b[1][0]) + to_string(b[1][1]) + to_string(b[1][2]); unordered_set<string> visited({s}); queue<pair<string,int>> q({{s, s.find('0')}}); int res = 0; while (!q.empty()) { int sz = q.size(); while (sz--) { auto [curr, pos] = q.front(); q.pop(); if (curr == "123450") return res; for (const auto& next : moves[pos]) { string str = curr; swap(str[pos], str[next]); if (visited.count(str)) continue; visited.insert(str); q.push({str, next}); } } res++; } return -1; } }; 人生,也許很突然, 但也可能都是必經之路。 ...

November 25, 2024 · 1 分鐘 · intervalrain