Skip to content

Commit abc99d4

Browse files
committed
feat: add kotlin solution to lc problem: No.0303
1 parent 22aa558 commit abc99d4

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed

solution/0300-0399/0303.Range Sum Query - Immutable/README.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ tags:
4545
<strong>解释:</strong>
4646
NumArray numArray = new NumArray([-2, 0, 3, -5, 2, -1]);
4747
numArray.sumRange(0, 2); // return 1 ((-2) + 0 + 3)
48-
numArray.sumRange(2, 5); // return -1 (3 + (-5) + 2 + (-1))
48+
numArray.sumRange(2, 5); // return -1 (3 + (-5) + 2 + (-1))
4949
numArray.sumRange(0, 5); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
5050
</pre>
5151

@@ -321,6 +321,29 @@ void numArrayFree(NumArray* obj) {
321321
*/
322322
```
323323
324+
#### Kotlin
325+
326+
```kotlin
327+
class NumArray(nums: IntArray) {
328+
private val prefix_sums: IntArray
329+
330+
init {
331+
val nums_size = nums.size
332+
this.prefix_sums = IntArray(nums_size + 1)
333+
for (i in 0..<nums_size) {
334+
this.prefix_sums[i + 1] = this.prefix_sums[i] + nums[i]
335+
}
336+
}
337+
338+
fun sumRange(left: Int, right: Int): Int = this.prefix_sums[right + 1] - this.prefix_sums[left]
339+
}
340+
341+
/**
342+
* Your NumArray object will be instantiated and called as such: var obj = NumArray(nums) var
343+
* param_1 = obj.sumRange(left,right)
344+
*/
345+
```
346+
324347
<!-- tabs:end -->
325348

326349
<!-- solution:end -->

solution/0300-0399/0303.Range Sum Query - Immutable/README_EN.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,29 @@ void numArrayFree(NumArray* obj) {
319319
*/
320320
```
321321
322+
#### Kotlin
323+
324+
```kotlin
325+
class NumArray(nums: IntArray) {
326+
private val prefix_sums: IntArray
327+
328+
init {
329+
val nums_size = nums.size
330+
this.prefix_sums = IntArray(nums_size + 1)
331+
for (i in 0..<nums_size) {
332+
this.prefix_sums[i + 1] = this.prefix_sums[i] + nums[i]
333+
}
334+
}
335+
336+
fun sumRange(left: Int, right: Int): Int = this.prefix_sums[right + 1] - this.prefix_sums[left]
337+
}
338+
339+
/**
340+
* Your NumArray object will be instantiated and called as such: var obj = NumArray(nums) var
341+
* param_1 = obj.sumRange(left,right)
342+
*/
343+
```
344+
322345
<!-- tabs:end -->
323346

324347
<!-- solution:end -->
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class NumArray(nums: IntArray) {
2+
private val prefix_sums: IntArray
3+
4+
init {
5+
val nums_size = nums.size
6+
this.prefix_sums = IntArray(nums_size + 1)
7+
for (i in 0..<nums_size) {
8+
this.prefix_sums[i + 1] = this.prefix_sums[i] + nums[i]
9+
}
10+
}
11+
12+
fun sumRange(left: Int, right: Int): Int = this.prefix_sums[right + 1] - this.prefix_sums[left]
13+
}
14+
15+
/**
16+
* Your NumArray object will be instantiated and called as such: var obj = NumArray(nums) var
17+
* param_1 = obj.sumRange(left,right)
18+
*/

0 commit comments

Comments
 (0)