精華區beta Marginalman 關於我們 聯絡資訊
剛好沒課 想說來寫寫看 結果第一題我就不知道出啥問題了 所以是出啥問題啊 我不太熟指標 題目: 給你一個陣列跟目標數字 找到陣列裡加起來跟目標數字一樣的兩個數字 回答他在哪裡 https://i.imgur.com/5j9MXqH.png int* twoSum(int* nums, int numsSize, int target, int* returnSize) { for ( int i = 0 ; i < numsSize ; i ++ ) { for ( int j = 0 ; j < numsSize ; j ++ ) { if(j != i) { if((nums[i]+nums[j]) == target) { printf("[%d,%d]",i,j); break; } } } } return 0; } 就 很白痴的方法 對ㄚ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 134.208.57.64 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1698827124.A.2D4.html
ZooseWu: 自己先想過一遍解法 再去看別人思路 就會學到東西 加油 11/01 16:27
oin1104: 我去其他地方弄應該是對的 我怎麼錯了 我流淚了 11/01 16:27
digua: 大師 11/01 16:28
ZooseWu: 環境不一樣會有差吧 我對C也不熟 11/01 16:28
h0103661: c的int不能在for迴圈裡面宣告 11/01 16:30
szymwf: 你的break只會跳出第一層迴圈 這樣你每次都會印兩個答案 11/01 16:31
szymwf: 出來 11/01 16:31
h0103661: #1A24NXwO (C_and_CPP) 11/01 16:32
oin1104: 那個int i,j只是拿來計數的 迴圈裡面應該都能用ㄅ 應該 11/01 16:33
oin1104: 可以印出來 11/01 16:33
oin1104: 挖 哭啊 改一下 11/01 16:33
oin1104: 那我再加一個break 11/01 16:34
wu10200512: 老哥你超時了 這樣不算刷過 11/01 16:36
oin1104: 為什麼會超時阿 我才兩層欸 我哭了 11/01 16:37
wu10200512: 兩層就O(n^2) 爛到流湯 11/01 16:37
wu10200512: 你去看一下其他人怎麼解吧 11/01 16:38
h0103661: 沒有超時啦,runtime error是執行錯誤,超時是tle 11/01 16:38
ZooseWu: 不是超時 是回傳0錯誤 要把答案回傳回去 11/01 16:38
wu10200512: 還有你確定要用純c嗎 你之後stl容器都不能用 我覺得 11/01 16:38
wu10200512: 你頭會裂開 11/01 16:38
Che31128: 這題用兩層是最慢的解法 對啊 11/01 16:40
Che31128: 還有你不用cpp嗎 11/01 16:40
Che31128: 學校要教什麼跟你自己學的沒衝突吧 11/01 16:40
oin1104: 我想說先跟著學校學 所以就直接c了 11/01 16:42
oin1104: 我之後應該會學別的 11/01 16:42
ZooseWu: 他連資料結構演算法都不會的話 你要他自學新語言有難度 11/01 16:42
ZooseWu: 第一款學好之後 再開始學其他的會比較好上手 11/01 16:43
oin1104: 我剛開始碰指標 11/01 16:43
oin1104: 演算法那些可能要一陣子之後才會碰 11/01 16:43
AquaCute: 我也來寫寫看好惹 11/01 16:45
AquaCute: 話說這是第幾題? 11/01 16:46
AquaCute: 抱歉看到惹 還真的是第1題 11/01 16:48
oin1104: Two Sum 11/01 16:48
lovez04wj06: 反正看到陣列要加速就取用查表的方式去做D: 11/01 16:53
oin1104: 我看他詳解好像差不多是直接查“x-那個數字” 然後我還 11/01 16:54
oin1104: 在那邊雙層迴圈 哈 11/01 16:54
AquaCute: 發現問題點了 *returnSize不管會free()太多 11/01 17:12
AquaCute: 要加 *returnSize = 2; 11/01 17:14