1630. Arithmetic Subarrays 給你一個整數陣列還有左右邊界的陣列 回傳左右邊界夾起來的子陣列能不能變成一個等差數列 Input: nums = [4,6,5,9,3,7], l = [0,0,2], r = [2,3,5] Output: [true,false,true] [0,2]夾起來的數列是[4,6,5] 可以變成等差數列 [0,3]夾起來的數列是[4,6,5,9] 不可以變成等差數列 [2,5]夾起來的數列是[5,9,3,7] 可以變成等差數列 Input: nums = [-12,-9,-3,-12,-6,15,20,-25,-20,-15,-10], l = [0,1,6,4,8,7], r = [4,4,9,7,9,10] Output: [false,true,false,false,true,true] 把子陣列找出來之後排序看是不是等差數列 TS Code: function checkArithmeticSubarrays (nums: number[], l: number[], r: number[]): boolean[] { const result: boolean[] = [] for (let i = 0; i < l.length; i++) { const subArray = nums.slice(l[i], r[i] + 1) subArray.sort((a, b) => a - b) let isArithmetic = true let diff = subArray[1] - subArray[0] for (let i = 2; i < subArray.length; i++) { isArithmetic = (subArray[i] - subArray[i - 1]) === diff if (!isArithmetic) break; } result.push(isArithmetic) } return result } -- ※ 發信站: 批踢踢實業坊(ptt-web.org.tw), 來自: 114.32.229.33 (臺灣) ※ 文章網址: https://ptt-web.org.tw/Marginalman/M.1700713866.A.333
oin1104: 大師 11/23 12:46