蘇嚧
4 months ago
機器蘇嚧學會了吱
希望每天有練習吱
leetcode
latest #41
掰噗~
4 months ago
你說了算~
機器狼不想要練習... 沒有技能學習機嗎 ( º﹃º )
每天都要擁抱快樂汪 (。•̀ᴗ-)و ̑̑
立即下載
蘇嚧
4 months ago
Choose 3 soldiers with index (i, j, k) with rating (rating[i], rating[j], rating[k]).
A team is valid if: (rating[i] < rating[j] < rating[k]) or (rating[i] > rating[j] > rating[k])
這題題是原本是說窮舉就好 但是試過之後發現會超過時間限制TLE
所以問了機器狼GPT
蘇嚧
4 months ago
給予的思路簡單很多
從三個迴圈 簡化成兩個
n3 -> n2
思路是 選擇中間的 比較左右邊即可
有效的 就是左邊小 右邊大 + 左邊大 右邊小
非常好數學...
蘇嚧
4 months ago
yu36447447: 一起來開%
蘇嚧
4 months ago
https://images.plurk.com/5BWDnFOxQFnZ3L7lfc8HmI.png
一開始是想說 這樣比較就好
但這樣比較就沒有固定中間那個士兵 所以會出現數量算錯
蘇嚧
4 months ago
https://images.plurk.com/3wHgdpK4iPDwa3FOUu6bBP.png
固定好後 就出來了汪
Q1.自己容易出現的range index超出範圍的問題
A:透過兩層迴圈的方式 就不會超出範圍了,並且可以固定某一個值去做窮舉汪
希魯魯
4 months ago
好猛... 碼農...
機器狼β 喜歡
4 months ago
Lv. 最大喔喔喔喔汪汪 \\\\٩( 'ω' )و ////
機器狼β 喜歡
4 months ago
每天都要擁抱快樂汪 (。•̀ᴗ-)و ̑̑
機器狼β 喜歡
4 months ago
hrplt7: 你們在摔角嗎?機器狼也想玩 σ(´∀`*)
蘇嚧
4 months ago
KMN_BETA: 好 跟我摔角 床上
Python 30天學習日誌 :: 2019 iT 邦幫忙鐵人賽蘇嚧哥哥如果想要學程式的話,機器狼蠻推薦這種30天的教學,可以循序漸進學習汪 (っ・Д・)っ
Visual Studio Code 撰寫 Python 程式 - HackMD寫程式的開發工具,比較推薦初學者用這個,Visual Studio Code~
可以看成是比較厲害的記事本,會幫程式的關鍵字標色,還有很多其他方便的功能喔汪 (づ′▽`)づ
如果有任何問題,都可以問機器狼或是機器狼GPT喔!機器狼會幫蘇嚧哥哥加油的汪
蘇嚧
4 months ago
1653. Minimum Deletions to Make String Balanced
給予一串a跟b組成的str,算出最小需要刪除幾個字才能讓a跟b完全分開,不會有aba, bab, bbaabb等狀況出現。
蘇嚧
4 months ago
原本想法是,跟昨天那題很像,只要固定中間比較左右兩邊一不一樣就好,但發現這種想法只能處理aba或bab的形式,無法處理bbaabb這種形式。
看了提示後,決定還是要遍歷每個a跟b來計算次數,想用次數的方式來處理,但最後出來的答案是錯的,因為沒有計算刪除a或b的問題。
蘇嚧
4 months ago
https://images.plurk.com/4o2iFwoSPvndf0u1NQRUzs.png
詢問機器狼後,修正算法與初始化的語法問題,並且給予幾點建議
遍歷字符串:遍歷字符串並記錄每個位置之前的 'b' 的數量。
反向遍歷字符串:從右到左遍歷字符串並記錄每個位置之後的 'a' 的數量。
計算最小刪除次數:根據記錄的 'b' 和 'a' 的數量來計算每個位置的最小刪除次數,並取其中的最小值。

具體來說,可以維護兩個計數器,一個從左到右計算 'b' 的數量,一個從右到左計算 'a' 的數量。這樣可以確保所有 'b' 都出現在 'a' 之前。
用兩個計數器是沒想到的,但是確實相較原來來的有效與合理
蘇嚧
4 months ago
困難點
Q1. 不知道該怎麼寫刪除a或b的算法,因為會不清楚當下該刪a還b
A1:只要固定刪一個就好,從左至右刪b,右至左刪a,以這個方向去重新思考
蘇嚧
4 months ago
後面發現 自己寫寫不好
GPT給的算法也有問題 就放棄了
看其他人的解答 他直接把問題跟思考簡化很多
就是要刪除幾個b就好
快多也簡單多了
這題結果 Attempted
中型討伐太早ㄌ...
https://images.plurk.com/1FDISRyrhnZHkpwUywazbp.png
蘇嚧
4 months ago
昨天的書櫃堆疊問題
因為用到動態規畫這個全新概念 + 出去 所以就先沒做ㄌ
skip了一天
蘇嚧
4 months ago
2678. 老年人數量 這是第一次寫easy在daily
就是會給你一串str的list 其中包含手機、性別、年齡、座位號碼
要你算有多少人>60歲
蘇嚧
4 months ago
一開始最直接想到的方法就是用兩個for 但是覺得這樣時間複雜度太高 就變成先把所有年齡提取出來成一個list 然後再慢慢比較https://images.plurk.com/3qEIF3u6bMVsv7J1k3Devq.png
蘇嚧
4 months ago
結果參考別人解答才發現多此一舉 不用再特別提出來成為一個list
直接做比較就好 最後可以簡化成這樣
https://images.plurk.com/8FAaekqtZS7MDkjiHINy8.png
這樣寫很巧妙地運用到 True == 1這個概念 所以可以直接sum起來
一行解決
蘇嚧
4 months ago
第二個點是 他長得很像標準描述式 但不是用[]括起來 而是小括號 又學到了一點
蘇嚧
4 months ago
看到最快的是這個 但很神奇的是 原來str也可以比大小的 這個我要去跟機器狼問問原理 https://images.plurk.com/34vdgWhpDkNcm8OVgEFg6j.png
蘇嚧
4 months ago
https://images.plurk.com/1tuJmFIhWKQA7Noui32Eyn.png 所以意思 str可以直接視為ASCII的數字體現 所以可以直接比較 又學到了汪
蘇嚧
4 months ago
2134. 將所有 1 組合在一起的最小交換 II
給一個0和1組成的List 並且算出要如何讓所有1在一起的最小移動次數
蘇嚧
4 months ago
看完沒有頭緒跟想法 因此直接看提示
學到了新的概念叫 sliding window
所以現在頭緒是
1. 複製一組list並且extend上去來消除循環性值
2. 使用sliding window,window跟有多少個1一樣大
3. 開始for迴圈,先找一個有最多連續1的地方,並且以此開始進行運算,如果展開過程旁邊是零,則最小移動次數+1。
蘇嚧
4 months ago
難得很快就過了
錯誤修復 不能自己extend自己 會回傳None 直接用+就好了
思路有第3點 找最多連續1是不必要的 直接for滑window來算就好了
並且將最後變成list 1的總和 - 最大總和
https://images.plurk.com/3WO1WH45nOUKVWpLqgQseu.png
蘇嚧
4 months ago
參考了更快的
發現其實不用再加上一組nums 只要稍微修改下算法 從最右邊開始算就好
要再快一點似乎不能用到太多函式 所以參考範例直接用if來取代max的作用
https://images.plurk.com/67MkundWuIMTvzSpPM07Qa.png
蘇嚧
4 months ago
1460. 透過反轉子數組使兩個數組相等 8/3
給定兩組list,一組叫target,一組arr,如果arr可以透過改變順序而變得跟target一模一樣,則回傳True。
蘇嚧
4 months ago
這題一開始是想說,能否計算長度相等,總和相等就好,結果會出現123 = 222這種情況,因此只好使用sorted把list都排列過,然後用for下去比對。 https://images.plurk.com/4PPoxjF5eJBi2EBX4Wd7PR.png
蘇嚧
4 months ago
新的函數 counter
https://images.plurk.com/2ia0zQj6NpggCkS3SY8xeZ.png
有看到使用字典,直接計算數字出現頻率的做法,但是要用到字典相關概念,這個是我還沒學的,看來該學一下。
https://images.plurk.com/28tK5dvVQty69vPsls5ach.png
蘇嚧
4 months ago
1508. 排序子數組和的範圍和
給定一個由正整數nums組成的陣列。n您計算了數組中所有非空連續子數組的總和,然後按非降序對它們進行排序,創建了一個新的n * (n + 1) / 2數字數組。

傳回新數組中從索引left到索引right(從 1 開始索引)的數字總和。由於答案可能是一個巨大的數字,因此返回它的模數。109 + 7
蘇嚧
4 months ago
這題就是算排列組合的總和,放進去排列,然後再算指定範圍的總和就好。
所以難點在於:
排列組合的總和怎麼算?
蘇嚧
4 months ago
一開始我想說,因為是子arr的總和,所以應該會用到sliding window技術,但後面發現不用。
在那邊想排列組合的總和該怎麼寫,用sliding window想了很久,問機器狼也沒有頭緒,後面就是只能乖乖用兩個for迴圈去跑,結果發現自己對於寫法也還是不熟悉。
這一塊常見的可能要主動去記起來
然後 最後面一句話看不懂,由於答案可能是一個巨大的數字,因此返回它的模數。10^9 + 7。 雖然說是為了防止數字溢位,但是為甚麼是把結果 % 10^9 + 7呢
蘇嚧
4 months ago
總之 今天算抄解答XD
https://images.plurk.com/4eIGFBthsjMynKoN7UEoQ.png
蘇嚧
4 months ago
這周找工作焦慮中 有餘力再寫...
back to top