2022年11月30日 星期三

[2349] Design a Number Container System(TBD)

這一題真的可以用C 寫嗎XD~
好吧我好像有點偷吃步,貌似要用linked link ?!  
這題沒有人用C寫過XD 只好看別題類似的, 發現原來malloc的時候多給了一個pointer (?)
但~~~單獨跑一個測資可以過,連跑到第三個就掛了
但是把第三個搬去單獨跑也是可以的?!

好吧亂弄ㄧ通之後,我想index 還是要hash 一下~不然count數目和index 其實沒有關係XD
例如: 只塞一個index是1000000的值,但它的count 是 1  XD
間先醬~~~無法思考啊啊啊~~~~~(國劇甩頭)

[2126] Destroying Asteroids

ㄜ...看了Hint 才會寫的,不然原本有點不知道該怎麼下手?!
是在一個無法思考的狀態 Orz

[2475] Number of Unequal Triplets in Array(TBD)

暴力法是這樣~~~

2022年11月29日 星期二

[559] Maximum Depth of N-ary Tree

雖然有覺得可以用自己一個遞迴就寫出來,但還是卡卡的,用了一個current 去多存目前的深度;

[367] Valid Perfect Square

啊~感覺又是一個數學的問題啊 XD~~~~
邊界值一直搞不定
可能是我現在有點不想思考的關係><

[1637] Widest Vertical Area Between Two Points Containing No Points

給一組(x,y), 雖然題目寫了一段,但意思就是求兩兩x 之間的最遠距離, y可以完全不管。
所以偷吃步就是~~~弄一個x array出來做sorting XD 但這樣當然慢一點

[2287] Rearrange Characters to Make Target String

是easy的題目,感覺有小小的陷阱  XD
但大致上是給人好心情的題目:P

2022年11月26日 星期六

[45] Jump Game II

其實還是沒有很懂T_T 頭好昏
大概是說,有一個max 會存當前這個range裡面可以跳去最遠的地方
比方說 nums = [2,3,1,1,4] 從nums[0] 的2 開始, max jump 是0+2 =2 ; 
那麼right 設成2 . 接著要來看這兩步裡面, 分別可以跳到多遠?
所以nums[1] 的3 加上自己的index 1 =4 ; 這時max jump 已設成4 . 
但是right 還沒有到(right =2 ),我們還沒有看完這個range 的每一步.
下一個nums[2] index 2 加步數 1 =3 , 小於max jump. 所以maxjump 目前仍是四. 
此時right是2 , 已經到了, 表示前一輪的range 檢查完了, 這時可以跳去最遠的地方存在maxjump
right  就更新成maxjump (why?!XD)

for回圈裡面接下來要看nums[3] , index 3 可以是從index 1的3過來, 也可以是index 2的1 過來
因為他們都不會比max jump 大,所以就繼續看下一個index
到四的時候因為right =4了, 更新跳的次數, (和 maxjump , 不過因為已經是array 尾巴了,它再跳去哪在此時也沒有意義了. )

[334] Increasing Triplet Subsequence

先來一個超過時間的版本嗎XD

[409] Longest Palindrome

感覺好像是有點空虛的題目XD
就純粹算數的感覺?!並且最後有一點點偷吃步 (扮鬼臉)

2022年11月25日 星期五

[740] Delete and Earn

奇怪,無法把它推論到house robber上!還想說是不是要三個數字group在一起判斷
我是不是天選之人~專門看不懂DP? T—T
明明他們就是一模一樣的題目><
選max 跟算total 可以合在一個loop裡,只是hash 就必須先開很大,
看喜歡哪一種XD

[213] House Robber II

結果想的太複雜Orz 把自己整死Orz
原來變成circle 只要考慮從 第一間到倒數第二間  跟第二間到最後一間
這樣就可以了!!!

2022年11月24日 星期四

[82] Remove Duplicates from Sorted List II

雖然邊看著世足賽邊寫還可以前前後後把它寫出來
但是真的面試的時候又會腦袋一片空白吧.....(眼神死)
先放個初版

[746] Min Cost Climbing Stairs

竟然被macro 整到,覺得不開心XD 記得前前後後括號都要給它括好括滿!!!

[1137] N-th Tribonacci Number

DP特訓,START!!!
這題沒什麼懸念吧XD 就是index 的邊界要注意一下~等於也要包進去才行。

2022年11月22日 星期二

[1539] Kth Missing Positive Number(TBD)

寫了算是暴力解~~~O(n)
如果有回來optimize 再寫成O(logN)  XD
彷彿好像應該要用到binary search~

[1437] Check If All 1's Are at Least Length K Places Away(TBD)

寫了一個很醜的答案,然後發現其實只要幾行就好了?! (泣)
用一個 last 去存上一個1出現的index , 然後遇到下一個1 就相減求出它們的距離,
並把last 更新的現在的 1. 初始值last 設為負一,這樣也可以考慮進去開頭是0的情況. 
(開頭是0 的部份,不管它有幾個0都可以不必計入。尾巴的零也是一樣;但基本上尾巴的0可以忽略不計(?!)

有想到的話再回來寫精妙版本XD

[1047] Remove All Adjacent Duplicates In String

暴力法超過時間了XDDDDD
偷看一下答案原來要用stack QQ

[442] Find All Duplicates in an Array

第一版!!!
竟然忘了count++ 真是太蠢了= = 
更新:後面看一看除了先sorting 以外好像也沒什麼特別的(thinking圖)
那就先這樣好了XD~~~

[97] Interleaving String (TBD)

這題沒寫完啊!!!
但是今天不是DP的心情QQ
在這邊紀錄一下目前心得:
原本想說要先把S1的字母從S3拿掉,這樣剩下的再拿來跟S2照順序比對,
看是不是也可以每個字母都match,但這樣做的問題是,
拿S1掉的時候,如果字母有重覆出現,無法確定該拿前面的或後面的,
因為拿前跟拿後會影響下一步的 S2 比對的順序,可能原本true的就變成false了!!!

[80] Remove Duplicates from Sorted Array II

竟然一次 AC medium的題目,我的眼淚都要噴出乃惹~~~~
似夫有加速的方式~用一個source 的index 跟target 的index (咦不是同一個array嗎XD)
彷彿雙刀俠的概念?!(好啦two pointers)
然後一路檢查目前要決定要不要寫入的這個值, 和index-2 的值一不一樣?!
因為array是非遞減(non-decreasing order )並只能最多重覆兩次
所以檢查index-2的值就足夠了!若是已經重覆第三個以上, 那麼就不寫入. 
最後就是回傳新的numsSize 囉

2022年11月21日 星期一

[2006] Count Number of Pairs With Absolute Difference K

先貼個暴力解.......

[1679] Max Number of K-Sum Pairs

Two sums 系列題連發?!
一次解完,開薰XD

[2351] First Letter to Appear Twice

這題目也太開心了吧 XD~~~
越新題號的寫C人數越少XD
這該說是時代的眼淚嗎QQ

[263] Ugly Number

使人開心的題目again ?!
搞了recursive 好像是比別人快一點?!(但有可能是幻覺XD)
總之自己寫的就是開心~~~~~~
另外我一直以為這題我寫過了,原來我寫的是happy number 嗎XD
那還有sad number 或 pretty number 嗎 XD

[2395] Find Subarrays With Equal Sum

看錯題目的意思,想了很久!!!
原來它的兩兩相加必須是連續的。
暴力法如下:

2022年11月20日 星期日

[463] Island Perimeter

真是使人開心的題目~(大心)
不過一開始忘記把 == 0 的情境拿掉了 XD

[704] Binary Search

奇怪,怎麼可能沒寫過binary search ?!
重點在於要不要加等於XD(苦笑)

[24] Swap Nodes in Pairs

奇怪...在外面寫的時候就卡住超久Orz
1,2,3,4 應該變成 2,1,4,3 但是一直出現2,1,3 
第二組的head一直無法更新>< 也就是新的1 沒辦法往後指到4 !
要用一個pre pointer 去存一下

[205] Isomorphic Strings

看起來不難但是一直寫不出來 囧
寫出來之後又比人家慢很多?!
搞半天竟然是!!!for 裡面的 strlen(s) 要搬出來外面先存一個len ?!?!?!
我還以為for的第一行只做一次, 後面只有加加或減減而已QQ
真是未夠班啊.......

[120] Triangle

雖然感覺用recursive 可以做出來但是不意外的卡住XD
看C 可以用下面這個解法,從倒數第二層,去算它跟它的下一層相加的min, 然後就把自己改成相加的min 值,這樣一路往上把值passing 上去, 最後top/root 就會存了最小相加值了!!!
但是感覺這是一個暴力窮舉法嗎?貌似不是DP?! (thinking 圖)

[229] Majority Element II

感覺還是卡卡的!!!而且初始值的部分總是沒考慮好>< 
最後corner case 就掛了!

[169] Majority Element

奇怪我看我的submit 紀錄有送過AC,但是部洛格裡面沒有寫XD
怎麼會這樣呢 ?(thinking 圖)(可能是貼別人的扣跑跑看嗎XD)
也好,又看了一個新的解法!

[167] Two Sum II - Input Array Is Sorted

在那邊想說要用binary search !!!
笑我自己傻ToT

2022年11月19日 星期六

[977] Squares of a Sorted Array

直覺寫起來沒啥問題~因為時間晚了對於optimize 有點腦空XD
是以看了解答,原來要用兩根pointer~~~~
應該在白天頭腦清醒的時後可以想到吧XD 

[2432] The Employee That Worked on the Longest Task

想說搞一個check 去存後減前,省的在if /else 的時候一直去算,但感覺也沒有比較快XD 還多我兩行!可惡XD
另外就是有相同解的時候要回傳index 小的那個, 寫到後面就忘記它了 囧

[583] Delete Operation for Two Strings

感覺跟[1143] Longest Common Subsequence是一樣的題目?! 果不其然XD
所以就先貼過來用了 XD
長度的算法是各自的長度減去共同的長度再相加, 而不是總長(A+B)再減common 喔XD

另, 因這題不用考慮回傳值是不是要 allocate , 就把array 用固定值設好然後memset 設成0 就好了,速度會比較快~~~~(咦算是加速了1143 題嗎XD)

[1403] Minimum Subsequence in Non-Increasing Order

感覺又多了贅步了!!!但我有點不懂為什麼XD~~~~(抱頭)
先這樣子吧...(真的可以這樣嗎XD)

[376] Wiggle Subsequence

感覺好像沒有很漂亮但是也沒有不行吧 XD(自我安慰)
最開頭要做初始是up or down 的檢查,最後回傳up跟down 互換了幾次再加一!因為是回傳node 數. 

2022年11月18日 星期五

[2374] Node With Highest Edge Score

感覺不難的題目~可是會超過INT大小就很討厭XD

2022年11月17日 星期四

[2273] Find Resultant Array After Removing Anagrams

好像贅步很多again !!!
最後一個element 要考慮進去~
應該要可以寫進迴圈裡嗎?!
但是還是先這樣吧XD(又?!XD)

[1887] Reduction Operations to Make the Array Elements Equal

原來不用檢查最小值嗎XD  反正就是有diff 的時候, 要去算它到最後面(array size)會降幾次
這樣加完就會是正確答案了!(可畫個圖來理解)
沒想到寫完送出就accept了, 覺得感動!!!(痛哭)

[1324] Print Words Vertically

陷阱很多的題目!
不能只是單純的算出row跟column 然後暴力malloc 就好了
每行row 的最後面空白還要拿掉!!!
雖然應該有機會在一個回圈裡面做完, 
但現在有點腦死XD 先貼個全部做完以後, 再每行把尾巴空白拿掉的版本
另外pointer to pointer 雙層array, 如果每行row 是指去一個 char array 的話
都要多一個字元存\0 , 慎之!!!

2022年11月16日 星期三

[1497] Check If Array Pairs Are Divisible by k

有一點微妙的題目Orz
自以為很認真思考的在指上畫了好幾個二維矩陣想找出規律
結果跟DP 一點關係都沒有哈哈哈~~~(笑著流淚)

[1143] Longest Common Subsequence

看起來是很基本的DP
我還是砍掉重練吧(倒地)

[1576] Replace All ?'s to Avoid Consecutive Repeating Characters

感覺很累贅XD
一下要檢查是不是頭, 是不是尾, 然後又要檢查是不是連續兩個問號, 
感覺這就是一題看你有沒有考慮各種邊界值的問題?!(嗎XD)

[1629] Slowest Key

感人XD 令人心情好的題目again~~~(灑花奔跑)

2022年11月15日 星期二

[965] Univalued Binary Tree

令人心情好的題目XD

[2325] Decode the Message

奇怪我有一種一失足成千古恨的感覺XD
究竟~~~是要存char , 還是要存int 呢!!!
一開始覺得是char, 後來不知為啥又改成了int, 是不是反而多此一舉啊哈哈哈 XDDDD
先貼個目前的版本

[2270] Number of Ways to Split Array

好吧看起來left sum (or prefix sum?!) 真的是一個很常用的技巧呢QQ
桑心啊XD

[1991] Find the Middle Index in Array

說是跟724一樣的題目嗎~
結果我還是不會寫
我是不是很笨啊屋屋屋

2022年11月13日 星期日

[88] Merge Sorted Array

這題其實寫過了~
拿來抱佛腳複習quick sort 囧

密笈?!

咳咳咳...

[2331] Evaluate Boolean Binary Tree

奇怪為何別人的總是比較快....(?)
總之是一題送分題QQ

2022年11月12日 星期六

[152] Maximum Product Subarray(TBD)

我完全誤會題目的意思了.....如果輸入值都是正數的話, 我原本的寫法應該是對的? >< 
該說是考慮的不夠嗎?傷心啊QQ
另外, 原來用#define寫的MAX, 不能在一行裡面call兩次?!

2022年11月11日 星期五

[322] Coin Change

費了九牛二虎之力~終於有一丁點懂了~於是寫(x)模仿(o)了一個先sorting 的版本

2022年11月10日 星期四

[71] Simplify Path

彷彿真的很慢XD
啊...........
看來是要用ptr 自體copy比較快嗎?!(thinking圖)
不管如何, 先這樣XD

[108] Convert Sorted Array to Binary Search Tree

今天狀況好糟~(吶喊臉)
我該怎麼辦QQ

2022年11月9日 星期三

[389] Find the Difference

什麼原來沒有要sorting嗎 XD
是我想的太難了嗎~~~~(抱頭)

[914] X of a Kind in a Deck of Cards

什麼~~怎麼會有最大公因數這種東西~~~>< (抱頭)
搞的有點久 ><! 而且還有陷阱 >< !
人生好難數學好難>< 

[11] Container With Most Water (TBD)

彷彿是個暴力解的東西?!
如果不是暴力解, 那我看不懂XDDDD (被毆飛)
這個完全是對著別人的解答寫的QQ 前進下一題

2022年11月8日 星期二

[2441] Largest Positive Integer That Exists With Its Negative

當然是給它先sorting一下啊XDDD
然道不是用sorting 做嗎XD(被毆飛)

[423] Reconstruct Original Digits from English

有點奇怪的題目(thinking圖)
跑出來的時間更是奇怪XD
但是算了~(每題都算了~這樣可以嗎XD)
時間寶貴~趕緊前往下一題XD

[303] Range Sum Query - Immutable

太奸詐了!!!原來不是要存原本的array 是嗎!!!

[58] Length of Last Word

ㄜ這個題目........
先把尾巴的空格拿掉, 再繼續往前去算新的長度?!
感覺有點偷吃步XD
and 應該可以在一個回圈解掉?!
但是吃飯時間到了先這樣XD

2022年11月7日 星期一

[1380] Lucky Numbers in a Matrix (TBD)

ㄜ....先來貼個第一版(?!)
感覺再冷靜想想可以把它用一個雙層迴圈解掉而不是兩個?!

[74] Search a 2D Matrix

感覺是不是可以用雙向binary search 呀 ?!
好麻煩額~~~(滾來滾去)

[328] Odd Even Linked List

啊好像還可以更精簡啊...(遠目)
奇怪linked list 總是有一種礙手礙腳的感覺><
一開始想的太難了!想說是要一邊接起來然後就互換這樣
其實只要把偶數Node 想成另外接, 最後再整個接去前半的尾巴就好了

[621] Task Scheduler

好吧其實我真的沒有很懂這題......
應該是~~~
1.  bottleneck一定是出現最多次的task
2. 把這個task剛cooling time當成一組, 去算最少的"加上idke"的時間長. 
3. 最後考慮當出現最多次的item 超過一個的時候, 表示它會往後面長出尾巴(XD)
4. return 值是上面算出來的, 跟 原本的task 長度, 取大的 !(因為當task 超多組的且IDLE 很小的時候, IDLE 根本不重要?!)

2022年11月6日 星期日

[33] Search in Rotated Sorted Array(TBD)

啊~~寫到生氣啊!!!(鼻孔噴氣)
想說都已經return 了還無窮迴圈是我見鬼了嗎?!
原來是無窮迴圈在後面的測資嗎?!吼~~~~~~~~~!!!
無法惹, 今天到此為止吧Orz

[1029] Two City Scheduling

是一個獲得 IDEA 並且死背qsort 後可以簡單寫出的一題
但我不敢想像沒有獲得IDEA的時候會有多焦慮  XD
如果要求return是哪幾個人去A , 哪幾個人去B , 用C 寫起來就會變得很麻煩吧我想...(?)

2022年11月5日 星期六

[268] Missing Number(TBD)

這個太奸詐了吧!!!
居然有先算總階乘再一個一個扣掉, 留下遺失的美好~喔不是, 是遺失的那個數字!
感覺也可以寫出來吧但是現在我想只放我最初的寫法就好XD
放一個令人失落的TBD  XD!

[993] Cousins in Binary Tree

感覺沒什麼秘技?!就是要多加一個parent 的紀錄
看是要跑兩次function check 還是要用一個global 紀錄parent ?!
或是用structure宣告一個typedef 是存parent and depth
總而言之呢~~~~
一開始求高度很快就寫好了~要加parent check 卡了一下. 以上

2022年11月4日 星期五

[61] Rotate List

ㄟ~~~嗯~~~該說什麼好呢XD
奇怪我好像總是有多餘的檢查在回圈裡面?!
但是因為很快就accept了所以不想再追究了(遮臉)
C 真是 Linked list 的好朋友啊~~~~~

[23] Merge k Sorted Lists(TBD)

好吧就把今日命名為湊題數之日好了.....
湊著湊著湊了一個hard , 而我懶得再去看更多解法了(被歐飛)
簡單說就是先把mergeTwoLists 再寫一遍然後拿來用QQ

[226] Invert Binary Tree

賺題數again...
偷看解答以後是個開心的打完收工 XD

[222] Count Complete Tree Nodes(TBD)

賺題數?!用recursive 寫法居然這麼簡單?!(大驚)
但是題目說 : Design an algorithm that runs in less than O(n) time complexity.
這邊完全不瞭要如何達成 XD

[876] Middle of the Linked List

什麼我竟然除了compile error 之外一次就accept 了嗎!!!
太感人~~~~~~~

[1616] Split Two Strings to Make Palindrome

其實我自己寫的很醜?!(遮臉)
看了別人的寫法, 啊原來可以精簡成這樣啊(恍然大悟貌)
真糟糕XD 我的code 有好多 check point
而且突然大驚的發現原來break 的話, for 的index 不會加加嗎>< 
難道本來就這樣嗎XD~~~~~(倒退五十萬步)

2022年11月3日 星期四

[237] Delete Node in a Linked List

覺得這一題並不難?(thinking 圖)
歸在medium感覺有點意外!賺到一題的fu
(但彷彿妳的思考邏輯寫出來的code的確是把它變成medium了嗎XD)
原來可以用一個pointer 就完成!!!真是博大精深的codgin 世界啊~~~(遠目)

[43] Multiply Strings

字串版的數字相乘...
寫完覺得我不但不會寫扣, 我還不會做乘法吧 (倒地)

2022年11月2日 星期三

[14] Longest Common Prefix

啊~你問我為什麼要先找最小長度, 我不知道吶~哈哈哈~~(被毆飛)
直覺寫法: 

[54] Spiral Matrix (TBD?!)

應該要來一個好看一點的寫法的
但是這題花太多時間了
先這樣吧哈哈哈~~~(逃走)

2022年11月1日 星期二

[202] Happy Number

原來最後有這個偷吃步的方法XD 也太happy了吧!!!
先貼一下結果,細節等我把龜兔賽跑寫完再來繼續XD