用C刷題沒問題
linked list相關問題原本題目就有給struct ,主要是pointer跟STL無關可以直接寫
DP,BFS,DFS的問題也用不到STL,用C寫完全沒問題
tree的問題是linked list的延伸所以沒問題
字串問題也不大,知道處理\n就好
唯一比較麻煩的是map
C++有STL
但C也有glibc
Linux header也有struct rb_tree可用
不用重造輪子
只要知道怎麼include header,怎麼包庫進來就好
不知道怎麼用查一下API文件就好
結論就是用C寫leetcode完全沒問題
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.202.247 (臺灣)
※ 文章網址: https://webptt.cc/bbs/Tech_Job/M.1672640584.A.CCA.html
※ 編輯: yamakazi (61.230.202.247 臺灣), 01/02/2023 14:23:42
※ 編輯: yamakazi (61.230.202.247 臺灣), 01/02/2023 14:27:20
推文 (142)
推
ejnfu
放著C++ STL不用,要用C寫我也是醉了...
01/02 15:06
推
loadingN
對啦 有glibc 但如果後面遇到直接開個gdoc給你寫
01/02 15:06
→
loadingN
還是要自己刻...
01/02 15:07
→
yamakazi
以經典題two sum為例,用hash map建table根本不用重
01/02 15:27
→
yamakazi
新造輪子,他就是個table只是比較佔空間
01/02 15:27
→
yamakazi
連刻都不用刻
01/02 15:28
→
yamakazi
叫hash也不太對,因為根本用不到hash值,該叫lookup
01/02 15:31
→
yamakazi
table,用key當index,作為array中第幾個元素值,
01/02 15:31
→
yamakazi
查找時間一樣是O(1)
01/02 15:31
→
dildoe
那是讓你測驗用的吧。像FW好像還是用c比較多,C++
01/02 16:27
→
dildoe
光版本要統一就很累人XD
01/02 16:27
推
labbat
glibc也是linux os才有,跨平台windows和os/2怎麼辦
01/02 17:58
推
j0958322080
fw 不用 c++ 是因為 tool chain 少又貴吧
01/02 18:21
→
j0958322080
然後我也用 C 刷題,很容易贏過其他人,爽
01/02 18:22
→
yamakazi
沒有glibc 用陣列就好了
01/02 18:24
→
jfcherng
map 的話,leetcode 有 uthash 可以用
01/02 18:57
→
peter98
老實說 完全不知道你在堅持甚麼 glibc根本不是能
01/02 20:42
→
peter98
用的 這問題比C++版本問題還大 priority queue勒
01/02 20:43
→
peter98
考LRU cache那題時你等著哭死 另外 真的用c去寫
01/02 20:45
→
peter98
出來 也沒有人會appreciate...
01/02 20:45
→
peter98
p.s. PQ跟LRU cache是兩個例子 兩者之間無關
01/02 20:46
推
wulouise
說真的要比library 那都用python寫最懶(跑)
01/02 21:05
→
yamakazi
LRU 就是map和linked list是要哭什麼?
01/02 21:32
→
yamakazi
linked list又不是stl,map就用lookup table完全可
01/02 21:33
→
yamakazi
以取代
01/02 21:33
→
yamakazi
https://youtu.be/0VgqZTtkINY
01/02 21:36
→
yamakazi
上面就是用C寫LRU,根本不用重刻用linked list就好
01/02 21:37
→
yamakazi
,是要哭什麼?
01/02 21:37
→
yamakazi
你的論點大概就是stl 有priority queue可以用,但li
01/02 21:39
→
yamakazi
nked list斷開連結後放到頭部一樣可以辦到
01/02 21:39
→
yamakazi
應該說PQ本質就是double linked list,斷開連接移到
01/02 22:11
→
yamakazi
頭部這個動作是基本功,不是重刻輪子
01/02 22:11
噓
peter98
笑死了 用C++寫LRU cache幾行能搞定的事情
01/02 22:13
→
peter98
你用C寫這麼多還覺得自己好棒棒 笑鼠
01/02 22:13
→
peter98
笑死人了 誰不知道PQ就是doubly linked list? 問題
01/02 22:14
→
peter98
是你用C去寫一個pq.top() pq.pop() 就是用手刻阿
01/02 22:14
→
peter98
笑死 都刻完了還說不是刻 但是跟刻有87像是吧
01/02 22:15
→
peter98
這麼會寫資料結構寫完還好棒棒 你怎麼不回大二寫
01/02 22:16
→
peter98
資結作業去電爆剛滿20歲的小屁孩?
01/02 22:16
→
yamakazi
被指正就大崩潰喔,事實證明不用手刻也能寫LRU
01/02 22:24
→
yamakazi
我只是說了事實。你自己去看網路關於這題的討論吧,
01/02 22:25
→
yamakazi
在這邊崩潰不會顯得比較專業
01/02 22:25
→
yamakazi
pq.top()就是回傳頭部
01/02 22:28
→
yamakazi
pq.pop()就是把頭部斷掉,再用map找出最大值斷開連
01/02 22:29
→
yamakazi
接接到頭部,這樣叫重刻我也是醉了
01/02 22:29
→
yamakazi
我也是寫C++的,LRU就算用到PQ也沒有像你說的幾行就
01/02 22:33
→
yamakazi
寫完
01/02 22:33
→
yamakazi
https://i.imgur.com/MmAn4Yk.jpg
01/02 22:33
推
j0958322080
自己刻太超過了啦,現在都去 google 然後複製貼上
01/02 22:34
→
j0958322080
即便你用 c++ 寫 LRU Cache 那些扣也不可能完全自幹
01/02 22:34
→
yamakazi
C++大概是65行,我這邊找到一個用C寫但是有用uthash
01/02 22:46
→
yamakazi
的只有50行
01/02 22:46
→
yamakazi
https://i.imgur.com/pVb4Ho4.jpg
01/02 22:46
→
yamakazi
不過行數不是重點,我刷題和工作都是用C++,重點結
01/02 22:54
→
yamakazi
論是用C刷leetcode完全沒問題不用重刻輪子
01/02 22:54
→
peter98
喔 人家都已經上太空 你還在研究怎麼殺豬公
01/02 23:04
→
yamakazi
說C沒辦法刷題要重刻輪子基本上就是先入為主的刻板
01/02 23:04
→
yamakazi
印象
01/02 23:04
→
peter98
殺完豬公覺得自己的刀法真不錯 但其他人都在太空了
01/02 23:04
→
peter98
看不見 就是這種港覺 嘻嘻
01/02 23:05
→
yamakazi
殺豬公?50行叫殺豬公喔?啊不是講要重刻輪子?現在
01/02 23:05
→
yamakazi
告訴你不用重刻輪子了嘻嘻
01/02 23:05
→
yamakazi
上太空和殺豬公的根據是什麼?我引經據典證明給你看
01/02 23:07
→
yamakazi
不用刻輪子了,沒根據隨便講不會讓你顯得比較專業
01/02 23:07
→
yamakazi
C的運行效率叫殺豬公的話,我不知道其他語言的運行
01/02 23:07
→
yamakazi
效率叫什麼?
01/02 23:07
噓
peter98
忘了噓 補一下
01/02 23:08
→
yamakazi
而且C是嵌入式最常用的語言,要說上太空的話,C不知
01/02 23:16
→
yamakazi
道多少衛星和太空梭電腦在用勒
01/02 23:16
推
j0958322080
那些應該是 fortran
01/02 23:18
→
yamakazi
韌體,嵌入式,以及整個Linux kernel都是用C寫的,
01/02 23:18
→
yamakazi
要說上太空,C肯定早就上太空了嘻嘻
01/02 23:18
推
SkyReaching
Peter你不要被搓破就開始顧左右言他,這個討論叫做
01/03 01:47
→
SkyReaching
不是不能用C寫,別人都貼出來怎麼寫了你還一直崩潰
01/03 01:47
→
SkyReaching
也是奇葩…
01/03 01:47
→
SkyReaching
沒有人說C寫效率一定比C++高吧,先把討論的主題搞清
01/03 01:48
→
SkyReaching
楚
01/03 01:48
推
ejnfu
純準備面試刷題的話,我看不出來用C的好處在哪...
01/03 02:38
→
ejnfu
python/Java/C++一行的operation,你C就算使用libra
01/03 02:38
→
ejnfu
ry不完全重刻,也是自己要多一些額外操作。結果還是
01/03 02:38
→
ejnfu
一樣,刷題效率就是比較差
01/03 02:38
→
ejnfu
除非你是想鍛鍊你的C語言,那倒是不錯的練習。
01/03 02:40
噓
peter98
噗哧耶 你本文在講刷題 結果被打臉之後開始講嵌入
01/03 03:03
→
peter98
式 你是在Xilinx上面刷題逆? 連比效率時要比bench
01/03 03:04
→
peter98
mark都不懂 你計組前兩章白念了膩? 我發現你不只
01/03 03:04
→
peter98
殺豬公 而且還會覽趴(C)比雞腿(效率)
01/03 03:05
→
peter98
好久沒見過像你這樣噗哧的言論了 也算是不容易
01/03 03:05
→
peter98
照你的說法 C真的是爛透了 要比效率就要寫machine
01/03 03:05
→
peter98
language阿 講到效率連組語都看不到機器語言的車尾
01/03 03:06
→
peter98
燈勒 你所探討的"效率"沒屁用 機器語言效率好但是
01/03 03:07
→
peter98
不可能拿來發展中大型程式 就跟你拿C寫 30分鐘內
01/03 03:07
→
peter98
刷不出來 你還管效率? 你連code都沒有 噗哧
01/03 03:07
→
peter98
就跟你說寫C要手刻 結果你舉一堆例子還是手刻
01/03 03:09
→
peter98
不然就是拿plaform-specific的東西在那邊搖
01/03 03:09
→
yamakazi
被指正就乖乖承認錯誤就好,你說造輪子我也證明給你
01/03 07:50
→
yamakazi
看不用造輪子了,東拉西扯不會讓你顯得比較專業
01/03 07:50
→
yamakazi
事實證明就是用C刷題本來就沒問題,被打臉後大崩潰
01/03 07:51
→
yamakazi
。
01/03 07:51
→
yamakazi
不過你再怎麼崩潰嗆我去電大二,也不會改變你的觀念
01/03 07:54
→
yamakazi
就是錯誤的這個事實,事實就是不用造輪子,光以行數
01/03 07:54
→
yamakazi
而言C++用PQ跟C根本差不多
01/03 07:54
→
yamakazi
我沒說C刷題有特別好處,我只說用C刷題沒問題不用重
01/03 07:56
→
yamakazi
複造輪子
01/03 07:56
→
dildoe
那年代東西stdlib會有完整的資料結構才神奇。移植
01/03 08:15
→
dildoe
性爆表,換句話說也有可能是東西都要自己來。可見f
01/03 08:15
→
dildoe
w還蠻無聊的,連螺絲都有可能要自己要造,造的輪子
01/03 08:15
→
dildoe
少,改東西還要上面輪子沒感覺。這po大概面過很多f
01/03 08:15
→
dildoe
w?!XD
01/03 08:15
→
yamakazi
我的論點不是「用C刷很有效率,叫你改用C」而是「用
01/03 08:21
→
yamakazi
C刷不用重造輪子」
01/03 08:21
→
yamakazi
其實你的論點不就是C++可以用PQ,我已經證明給你看
01/03 08:36
→
yamakazi
不用PQ也能刷題了,但如果你真的很想用PQ,C也有lib
01/03 08:37
→
yamakazi
可以用PQ,詳情自己上網查
01/03 08:37
→
chunfo
fw也不錯啊 比多數web仔高薪
01/03 11:04
→
dildoe
但那是fw變成平台跟輪子的形狀換來的啊 硬體平台跟
01/03 12:41
→
dildoe
輪子玩到風生水起 分得到績效才有用啊XD
01/03 12:41
推
BigCockman
語言根本就不是重點 會寫的用pseudo code 也沒差
01/03 19:12
推
as30385438
web仔三年經驗拿個150不錯了吧,當然跟豬屎屋沒法
01/03 20:59
→
as30385438
比啦
01/03 20:59
噓
peter98
笑死 你一看就知道沒資工的廖阿 = = 說實話也不行
01/03 22:49
→
peter98
你講幹話嗎? 用C可以寫完99%的程式阿 但刷題不是讓
01/03 22:49
→
peter98
你用c刷的 笑死 就跟你說刷題不要用c 用c要手刻
01/03 22:50
→
peter98
阿你的回應還是手刻阿 你的文章邏輯真的是廢到校
01/03 22:50
→
peter98
連glibc不能用你都不知道 廢話倒是一堆 笑死
01/03 22:52
推
j0958322080
用 c 刷也沒有要手刻,很多資料結構會先給你
01/03 22:55
→
j0958322080
會吵用手刻一看就知道沒用 c 刷過
01/03 22:56
推
j0958322080
阿說到用 C 刷題最煩的是 return array
01/03 23:40
→
LeaderH
用c刷題真的只是練c而已 不然刷leetcode的重點是解
01/04 00:37
→
LeaderH
題的思路 考題也是考思路 用高階語言確實會可以加快
01/04 00:37
→
LeaderH
練習的效率
01/04 00:37
→
yamakazi
又再崩潰了,貼給你的範例想必沒看過,還在自以為用
01/04 14:04
→
yamakazi
手刻
01/04 14:04
→
yamakazi
用uthash的macro叫用手刻,真正搞笑的恐怕是你自己
01/04 14:06
→
yamakazi
uthash有網友認證過leetcode刷題是可以用的
01/04 14:07
→
yamakazi
不過看來跟你是沒什麼討論的意義了,裝睡的人叫不醒
01/04 14:12
→
admon
c是高階語言裡最低階的
01/04 15:23
噓
peter98
廢文一篇
01/05 21:02
→
BarryBai
現在都物件導向的程式設計了… 有時候覺得C那個一
01/08 10:39
→
BarryBai
路到底的程式碼很可怕…
01/08 10:39
→
BarryBai
話說FW碰比較少,但曾經有把C code refactor 成C++
01/08 10:42
→
BarryBai
,而且也有tool chain 可以cross compile,FW應該
01/08 10:42
→
BarryBai
也不是不能用C++應該是C code太多了吧?
01/08 10:42