You are given N counters, initially set to 0, and you have two possible operations on them:
- increase(X) − counter X is increased by 1,
- max counter − all counters are set to the maximum value of any counter.
A non-empty array A of M integers is given. This array represents consecutive operations:
- if A[K] = X, such that 1 ≤ X ≤ N, then operation K is increase(X),
- if A[K] = N + 1 then operation K is max counter.
For example, given integer N = 5 and array A such that:
A[0] = 3 A[1] = 4 A[2] = 4 A[3] = 6 A[4] = 1 A[5] = 4 A[6] = 4the values of the counters after each consecutive operation will be:
(0, 0, 1, 0, 0) (0, 0, 1, 1, 0) (0, 0, 1, 2, 0) (2, 2, 2, 2, 2) (3, 2, 2, 2, 2) (3, 2, 2, 3, 2) (3, 2, 2, 4, 2)The goal is to calculate the value of every counter after all operations.
Write a function:
function solution(N, A);
that, given an integer N and a non-empty array A consisting of M integers, returns a sequence of integers representing the values of the counters.
Result array should be returned as an array of integers.
For example, given:
A[0] = 3 A[1] = 4 A[2] = 4 A[3] = 6 A[4] = 1 A[5] = 4 A[6] = 4the function should return [3, 2, 2, 4, 2], as explained above.
Write an efficient algorithm for the following assumptions:
- N and M are integers within the range [1..100,000];
- each element of array A is an integer within the range [1..N + 1].
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var prev_max_
for(var i=0;i<A.length;i++){
if(A[i]<=N){
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var mininum
for(var i=0;i<A.length;i++){
if(A[i]<=N){
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var mini
for(var i=0;i<A.length;i++){
if(A[i]<=N){
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if()
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value)
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<A.length;i++){
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[]
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = arr[i]
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = Math.max(arr[i])
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < max_value) arr[A[i]-1] = max_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = Math.max(arr[i], minimum_value)
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < minimum_value) arr[A[i]-1] = minimum_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = Math.max(arr[i], minimum_value)
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < minimum_value) arr[A[i]-1] = minimum_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = Math.max(arr[i], minimum_value)
}
return arr
}
function solution(N, A) {
// Implement your solution here
var arr = new Array(N).fill(0)
var max_value = 0
var minimum_value = 0
for(var i=0;i<A.length;i++){
if(A[i]<=N){
if(arr[A[i]-1] < minimum_value) arr[A[i]-1] = minimum_value
arr[A[i]-1]++
if(max_value < arr[A[i]-1]){
max_value = arr[A[i]-1]
}
}else{
//arr.fill(max_value)
minimum_value = max_value
}
}
for(var i=0;i<arr.length;i++){
arr[i] = Math.max(arr[i], minimum_value)
}
return arr
}
The solution obtained perfect score.