單身越久越難脫單
前一陣子在網(wǎng)上看到一句話 —— 單身越久越難脫單
作為大齡單身程序猿的我深以為然速警,甚至覺得單身的時間久了咧最,真的會喪失和異性相處的能力蒙挑。
以我個人的生活感受(當(dāng)然不能代表其他所有人單身都是這個原因)來說俯抖,惡性循環(huán) 主要包含以下點
單身 -> 宅家不愛出門 -> 奶茶甜品不離手颊糜,身材走樣 -> 缺乏運動和面對面社交 -> 圈子變小拨与、逐漸社恐 -> 單身
而一旦陷入以上的惡性循環(huán)稻据,脫單可不就越來越難了嗎?
所以我決定今天下定決心 打破 這個循環(huán),那就先從 身材管理(健身減肥) 開始捻悯!
網(wǎng)上有句話說的很好 —— 一個連自己身體都無法掌控的人匆赃,如何掌控人生!
一個人的身材今缚,25歲前算柳,是爹媽給的;25歲之后姓言,是自己修的瞬项。
能管好自己身材的人,往往能管理好自己的生活和工作何荚。反之囱淋,臃腫的身材背后,可能是一團亂糟糟的生活餐塘。
肥胖妥衣,給工作帶來影響,生活質(zhì)量也大打折扣戒傻,還談什么奮斗拼搏呢税手?
下定決心后,立刻用吃奶的力氣做了兩下臥推稠鼻。冈止。。哎呀媽呀候齿,太累了熙暴!
點杯 奶茶 補充補充能量吧~ 有能量才有力氣鍛煉 ~
但是畢竟我不是個 沒羞沒臊 的人,因為喝了奶茶慌盯,心里還是有一丟丟 愧疚感 的周霉,所以打算出門溜達溜達。順便緩解一下自己社恐的癥狀亚皂,暫時脫離虛擬的二次元生活俱箱,嘗試融入一下現(xiàn)實社會。當(dāng)我正在街上漫不經(jīng)心的向前走著時灭必,突然迎面走來一個妹子狞谱,朱唇玉面,頭發(fā)梳個丸子頭禁漓,身穿碎花裙子跟衅,曼妙身材呼之欲出。
我遠遠看去播歼,感覺妹子仿佛在和我微笑伶跷,但是當(dāng)妹子越走越近,社恐又羞澀的我沒敢和她對視,而是選擇低頭默默地繼續(xù)往前走叭莫。但是走著走著蹈集,腦中一個聲音狠狠地訓(xùn)斥我:“ShaderJoy,你出門不就是為了打破惡性循環(huán)的嗎雇初?既然上天都給你安排了這樣的一個千載難逢的機會拢肆,你都不選擇把握,你都這么大年齡了抵皱,還怕個什么雞毛善榛?就算被拒絕身上能掉塊肉嗎?”
言之有理吧牖移盆!這個心靈的聲音
我重新鼓起了勇氣,稍稍加快了腳步往回走尋覓妹子的蹤影伤为≈溲可是走了一會,卻再沒看到妹子的身影绞愚,我頓時感到有些失望叙甸,后悔當(dāng)時自己沒有好好把握機會,果然世上沒有后悔藥位衩。裆蒸。。
正在我內(nèi)心懊惱的時候糖驴,好巧不巧的僚祷,妹子居然出現(xiàn)在我前方不遠處,原來她也在往回走贮缕!難道她也是來找我的嗎辙谜?!天吶感昼,難道我這個大齡單身猿今天終于要逆天走 “狗屎運” 装哆。。定嗓。啊呸蜕琴,“桃花運” 了嘛!~
我整理了一下衣服宵溅,當(dāng)妹子走到我跟前的時候奸绷,我仿佛看見了她又微微沖我一笑,此時我決心一定要把握住這次機會上前和她搭訕了层玲,剛說:“你好……”。
誰知 “好” 字還沒說出口,妹子就驚恐地 “咻” 得一下以光速 “彈開” 了辛块,臉上還滿是嫌棄的表情畔派,躲得遠遠的,然后迅速消失润绵,留我一人尬在原地线椰,原來上面的那一切都是我的幻覺。尘盼。憨愉。她壓根沒有對我微笑,哪有什么狗血純愛偶像劇的上天安排卿捎。配紫。。
隨著我這次的搭訕失敗午阵,我又回到了上面的 “惡性循環(huán)” 圈子里躺孝。。底桂。
算法感悟
不過沒關(guān)系植袍,我又通過這次慘痛的失敗,悟出了關(guān)于算法的道理 —— 我所身處的 惡性循環(huán) 不就很類似
LeetCode 61 Rotate List (旋轉(zhuǎn)鏈表) 嘛籽懦,命運之輪一直在周而復(fù)始的循環(huán)旋轉(zhuǎn)于个。。暮顺。
好了厅篓,為了簡單起見舉個例子,原鏈表如下拖云,
即 l = 5
1->2->3->4->5->nullptr
k = 2
的情況下
4->5->1->2->3->nullptr
///@note 代碼原作者: Huahua
/// 詳細注釋:ShaderJoy
class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
if (!head) return head;
int l = 1; ///< 記錄鏈表的長度贷笛,默認為 1
ListNode* tail = head; ///< 尾指針,初始化指向鏈表頭部
while (tail->next) { tail = tail->next; ++l; } ///< 遍歷鏈表宙项,記錄鏈表的長度乏苦,同時尾指針指向鏈表尾部
k %= l; ///< 由于是循環(huán)鏈表,所以需要排除結(jié)果重復(fù)的步數(shù)尤筐,得到實際的旋轉(zhuǎn)次數(shù)
if (k == 0) return head; ///< 無需循環(huán)
/// @note ★
ListNode* prev = head; ///< 作用:指向要操作結(jié)點的前一個結(jié)點汇荐。初始為鏈表頭部
while (--l > k) prev = prev->next; ///< prev 向后移動 l-k-1 步 【例子中的 3】
ListNode* new_head = prev->next; ///< 然后保存 prev 后面的結(jié)點作為新頭 【例子中的 3 所指的下一個,是 4】
tail->next = head; ///< 將舊頭鏈接到鏈表尾部 【例子中的 1】
prev->next = nullptr; ///< 處理新尾部 【例子中的 3 所指的下一個盆繁,斷開 4】
return new_head;
}
};
其中為了加深記憶掀淘,再次將 關(guān)鍵步驟 ★ 總結(jié)如下
1. 將 prev
移動到待操作(新頭)結(jié)點的前一個結(jié)點;
2. 保存待操作結(jié)點為 new_head
油昂;
3. 將 head
鏈接到鏈表尾端革娄;
4. 斷開 prev
和原先其下一個(即新頭)結(jié)點的鏈接
結(jié)尾
好了倾贰,算法挺簡單的,幾句話就介紹完了拦惋,我要去默默療傷了(希望我的慘痛經(jīng)歷能夠讓大家對這個算法題目和代碼有深刻印象匆浙,那也就值了)