@@ -9,21 +9,21 @@ import kotlin.math.max
9
9
class Router (private val size : Int ) {
10
10
private var cur = 0
11
11
private val q: Queue <IntArray >
12
- private val map: HashMap <Int ? , ArrayList <IntArray ? >>
12
+ private val map: HashMap <Int , ArrayList <IntArray >>
13
13
14
14
init {
15
15
q = LinkedList <IntArray >()
16
- map = HashMap <Int ? , ArrayList <IntArray ? >>()
16
+ map = HashMap <Int , ArrayList <IntArray >>()
17
17
}
18
18
19
19
fun addPacket (source : Int , destination : Int , timestamp : Int ): Boolean {
20
20
if (map.containsKey(destination)) {
21
21
var found = false
22
- val list: ArrayList <IntArray ? > = map.get(destination)!!
22
+ val list: ArrayList <IntArray > = map.get(destination)!!
23
23
for (i in list.indices.reversed()) {
24
- if (list.get(i) !! [1 ] < timestamp) {
24
+ if (list[i] [1 ] < timestamp) {
25
25
break
26
- } else if (list.get(i) !! [0 ] == source) {
26
+ } else if (list[i] [0 ] == source) {
27
27
found = true
28
28
break
29
29
}
@@ -33,12 +33,12 @@ class Router(private val size: Int) {
33
33
}
34
34
}
35
35
if (map.containsKey(destination)) {
36
- val list: ArrayList <IntArray ? > = map.get(destination)!!
36
+ val list: ArrayList <IntArray > = map.get(destination)!!
37
37
list.add(intArrayOf(source, timestamp))
38
38
cur++
39
39
q.offer(intArrayOf(source, destination, timestamp))
40
40
} else {
41
- val temp = ArrayList <IntArray ? >()
41
+ val temp = ArrayList <IntArray >()
42
42
temp.add(intArrayOf(source, timestamp))
43
43
cur++
44
44
map.put(destination, temp)
@@ -55,7 +55,7 @@ class Router(private val size: Int) {
55
55
return intArrayOf()
56
56
}
57
57
val temp = q.poll()
58
- val list: ArrayList <IntArray ? > = map.get(temp[1 ])!!
58
+ val list: ArrayList <IntArray > = map.get(temp[1 ])!!
59
59
list.removeAt(0 )
60
60
if (list.isEmpty()) {
61
61
map.remove(temp[1 ])
@@ -66,25 +66,25 @@ class Router(private val size: Int) {
66
66
67
67
fun getCount (destination : Int , startTime : Int , endTime : Int ): Int {
68
68
if (map.containsKey(destination)) {
69
- val list: ArrayList <IntArray ? > = map.get(destination)!!
69
+ val list: ArrayList <IntArray > = map.get(destination)!!
70
70
var lower = - 1
71
71
var higher = - 1
72
72
for (i in list.indices) {
73
- if (list.get(i) !! [1 ] >= startTime) {
73
+ if (list[i] [1 ] >= startTime) {
74
74
lower = i
75
75
break
76
76
}
77
77
}
78
78
for (i in list.indices.reversed()) {
79
- if (list.get(i) !! [1 ] <= endTime) {
79
+ if (list[i] [1 ] <= endTime) {
80
80
higher = i
81
81
break
82
82
}
83
83
}
84
- if (lower == - 1 || higher == - 1 ) {
85
- return 0
84
+ return if (lower == - 1 || higher == - 1 ) {
85
+ 0
86
86
} else {
87
- return max(0.0 , (higher - lower + 1 ).toDouble()).toInt()
87
+ max(0.0 , (higher - lower + 1 ).toDouble()).toInt()
88
88
}
89
89
} else {
90
90
return 0
0 commit comments