Leetcode 區域和檢索 陣列不可變

2021-10-01 20:45:10 字數 706 閱讀 2096

描述:給定乙個整數陣列  nums,求出陣列從索引 i 到 j  (i ≤ j) 範圍內元素的總和,包含 i,  j 兩點。

說明:可以假設陣列不可變;會多次呼叫區間和sumrange 方法

示例:

給定 nums = [-2, 0, 3, -5, 2, -1],求和函式為 sumrange()

sumrange(0, 2) -> 1

sumrange(2, 5) -> -1

sumrange(0, 5) -> -3

方法1:暴力求解(一般都會超過時間限制)

每次呼叫區間求和方法的時候,都迴圈遍歷索引將每個元素相加

private int data;

public numarray(int nums)

public int sumrange(int i, int j)

return sum;

}

方法2:快取

如果我們知曉了每個位置的數值和,那麼求區間和就簡單的轉換為兩者之差,sumrange(i,j)=sum[j+1]−sum[i],這裡虛擬了sum陣列第乙個元素值為0。。

private int sum;

public numarray(int nums)

}public int sumrange(int i, int j)

leetcode 區域和檢索

題目 給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i j 兩點。實現 numarray 類 numarray int nums 使用陣列 nums 初始化物件 int sumrange int i,int j 返回陣列 nums 從索引 i 到 j i j...

leetcode 區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。示例 給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3 說明 你可以假設陣列不可變。會多...

LeetCode 區域和檢索 303

給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i,j 兩點。示例 給定 nums 2,0,3,5,2,1 求和函式為 sumrange sumrange 0,2 1 sumrange 2,5 1 sumrange 0,5 3說明 你可以假設陣列不可變。會多次...