https://www.hackerrank.com/challenges...
Full Solution At : https://hackeranksolutionsbyrishabh.c...
*****************************************************************************
Starting with a 1-indexed array of zeros and a list of operations, for each operation add a value to each of the array element between two given indices, inclusive. Once all operations have been performed, return the maximum value in the array.
Example
n=10
1ueries=[[1,5,3], [4,8,7], [6,9,1]]
Queries are interpreted as follows:
a b k
1 5 3
4 8 7
6 9 1
Add the values of between the indices and inclusive:
index 1 2 3 4 5 6 7 8 9 10
[0,0,0, 0, 0,0,0,0,0, 0]
[3,3,3, 3, 3,0,0,0,0, 0]
[3,3,3,10,10,7,7,7,0, 0]
[3,3,3,10,10,8,8,8,1, 0]
The largest value is after all operations are performed.
****************************************************************************
static long arrayManipulation(int n, int[][] queries) {
long op=0;
Map -Long,Long- map = new HashMap--();
for(int i=0;i{less than]queries.length;i++) {
long a=queries[i][0];
long b=queries[i][1];
long k=queries[i][2];
map.put((long)a, ((map.containsKey(a)?map.get(a):0)+k));
map.put((long)b+1, ((map.containsKey(b+1)?map.get(b+1):0)-k));
}
long value=0;
for(long i=0;i[less than]n;i++) {
System.out.println(i+1+"||"+map.get(i+1));
value += (map.containsKey(i + 1) ? map.get(i + 1) : 0);
op = Math.max(op, value);
}
return op;
}
Информация по комментариям в разработке