Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

Efficient method to find number of elements with odd frequency with a given range (L, R)
Разница между en1 и en2, 18 символ(ов) изменены
We are given an integer array (Arr) and an array of queries. ↵

A query will be one of the two types below. ↵

Type 1, format: [1, idx, val], where you are to update Arr[idx]=val, and we do not need to return anything↵

Type 2, format [2, left_idx, right_idx], where you are to count the number of elements with odd frequency within the left_idx and right_idx inclusive, and we return the count. The index is 1-based indexing↵

Examples:↵

Arr = [1,3,5,5]↵

queries = [[2,1,4], [1,4,2], [2,1,4]] ↵

The output should be [2, 4]↵

For queries[0], which is [2,1,4], the frequency of the elements is {1:1, 3:1, 5:2} so there are 2 elements (1,3) with odd frequency and the output for this query is 2.↵

queries[1] changes Arr from [1,3,5,5] to [1,3,5,4], and there will be no output.↵

queries[2], which is [2,1,4], the frequency of the elements is {1:1, 3:1, 5:1, 4:1}, and there are 4 elements (1,3,5,4) with odd frequency and the output will be 4.↵

Hence the overall output is [2,4].↵

I tried solving this question by doing Type 1 query in O(1) (just updating the array) time and Type 2 query in O(n) time (iterating from left to right to get the answer), but this failed the time limit given.↵

I was wondering if there is any solution with a better time complexity.↵

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en2 Английский tryGrind 2023-10-13 17:47:33 18
en1 Английский tryGrind 2023-10-13 17:44:20 1353 Initial revision (published)