精華區beta Marginalman 關於我們 聯絡資訊
leafff: 我一開始也想說分左右處理,然後就超時了11/25 14:04
leafff: 你有程式碼嗎11/25 14:04
剛好我今天是這樣解 這種思路比較好想只是要遍歷兩次= = Java Code: ------------------------------------ class Solution { public int[] getSumAbsoluteDifferences(int[] nums) { int[] prefix = new int[nums.length + 1]; for (int i = 1; i < prefix.length; i++) { prefix[i] = prefix[i - 1] + nums[i - 1]; } int[] res = new int[nums.length]; for (int i = 0; i < nums.length; i++) { res[i] += nums[i] * i - getPrefixSum(prefix, 0, i - 1); res[i] += getPrefixSum(prefix, i + 1, nums.length - 1) - nums[i] * (nums.length - i - 1); } return res; } private int getPrefixSum(int[] nums, int i, int j) { return nums[j + 1] - nums[i]; } } ------------------------------------ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.73.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1700892710.A.A37.html
JIWP: 對,要兩次,所以我覺得蠻爛的 11/25 14:13
leafff: 我的應該也算跑了兩次 11/25 15:30