Skip to content

Commit b9c2316

Browse files
aQuaaQua
aQua
authored and
aQua
committed
381 ut pass
1 parent 30f08bc commit b9c2316

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func (r *RandomizedCollection) Insert(val int) bool {
2626
}
2727
r.a = append(r.a, val)
2828
r.idx[val] = append(r.idx[val], len(r.a)-1)
29+
2930
return res
3031
}
3132

@@ -43,7 +44,7 @@ func (r *RandomizedCollection) Remove(val int) bool {
4344

4445
// 把 a 的最后一个数,放入最后一个 val 的位置
4546
r.a[indexOfLastVal] = last
46-
r.idx[last][numOfLast-1] = indexOfLastVal
47+
r.idx[last] = append([]int{indexOfLastVal}, r.idx[last][:numOfLast-1]...)
4748

4849
// 删除最后一个数
4950
r.a = r.a[:len(r.a)-1]

Algorithms/0381.insert-delete-getrandom-o1-duplicates-allowed/insert-delete-getrandom-o1-duplicates-allowed_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ func Test_Problem0382(t *testing.T) {
2929

3030
question{
3131
para{
32-
[]string{"RandomizedCollection", "insert", "insert", "insert", "insert", "insert", "remove", "remove", "remove", "insert", "remove", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom"},
33-
[]int{0, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
32+
[]string{"RandomizedCollection", "insert", "insert", "insert", "insert", "insert", "remove", "remove", "remove", "insert", "remove", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom", "remove", "remove"},
33+
[]int{0, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
3434
},
3535
ans{
36-
[]interface{}{nil, true, false, true, false, false, true, true, true, true, true, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2},
36+
[]interface{}{nil, true, false, true, false, false, true, true, true, true, true, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, true, false},
3737
},
3838
},
3939

@@ -42,6 +42,10 @@ func Test_Problem0382(t *testing.T) {
4242

4343
for _, q := range qs {
4444
sol, ord, par := q.ans.solutions, q.para.orders, q.para.paras
45+
46+
ast.Equal(len(sol), len(ord))
47+
ast.Equal(len(sol), len(par))
48+
4549
rs := Constructor()
4650
for i := 1; i < len(ord); i++ {
4751
switch ord[i] {

0 commit comments

Comments
 (0)