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:
class Solution { public int[] solution(int N, int[] 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].
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
System.out.print();
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<)
System.out.print();
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;K++){
System.out.print();
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;K++){
System.out.print(cntArr[k] + " ");
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;K++){
System.out.print(cntArr[k] + " ");
}
}
return cntArr;
}
}
Solution.java:16: error: cannot find symbol for(int k=0;k<cntArr.length;K++){ ^ symbol: variable K location: class Solution 1 error
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
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
function result: [3, 3, 3, 4, 3]
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 3 3 3 3 3 3 3 4 3
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.print(cntArr[k] + " ");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
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
function result: [3, 3, 3, 4, 3]
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 3 3 3 3 3 3 3 4 3
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMAx = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
for(int j=0;j<cntArr.length; j++){
cntArr[j] = max;
}
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMAx = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
tmp = cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
tmp = tmpMax + cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
cntArr[A[i]-1] = tmpMax + cntArr[A[i]-1]++;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 2 0 1 1 0 2 0 1 2 0 2 0 1 2 0
function result: [2, 0, 1, 3, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 2 0 1 1 0 2 0 1 1 0 2 0 1 3 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 3 0 3 0 1 3 0
function result: [3, 0, 1, 5, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 1 0 3 0 1 5 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < max ){
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < max ){
cntArr[A[i]-1] = max + 1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 2 0 0 0 1 3 0 0 0 1 3 0 5 0 1 3 0 5 0 1 6 0 5 0 1 7 0
function result: [5, 0, 1, 7, 0]
0 0 1 0 0 0 0 1 2 0 0 0 1 3 0 0 0 1 3 0 5 0 1 3 0 5 0 1 3 0 5 0 1 7 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 3 0 3 0 1 3 0
function result: [3, 0, 1, 5, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 1 0 3 0 1 5 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < max ){
cntArr[A[i]-1] = 1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1] = 1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1] = 1;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 3 0 3 0 1 1 0
function result: [3, 0, 1, 5, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 3 0 1 1 0 3 0 1 1 0 3 0 1 5 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max+1;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 4 0 1 2 0 4 0 1 4 0 4 0 1 5 0
function result: [4, 0, 1, 6, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 4 0 1 2 0 4 0 1 2 0 4 0 1 6 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 3 0 1 2 0 3 0 1 3 0 3 0 1 4 0
function result: [3, 0, 1, 4, 0]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 3 0 1 2 0 3 0 1 2 0 3 0 1 4 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
for()
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i])
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i] < tmpMax){
cntArr[i] = tmpMax;
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
for(int k=0;k<cntArr.length;k++){
System.out.print(cntArr[k] + " ");
}
System.out.println("");
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i] < tmpMax){
cntArr[i] = tmpMax;
}
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 3 0 1 2 0 3 0 1 3 0 3 0 1 4 0
function result: [3, 3, 3, 4, 3]
0 0 1 0 0 0 0 1 1 0 0 0 1 2 0 0 0 1 2 0 3 0 1 2 0 3 0 1 2 0 3 0 1 4 0
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i] < tmpMax){
cntArr[i] = tmpMax;
}
}
return cntArr;
}
}
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i] < tmpMax){
cntArr[i] = tmpMax;
}
}
return cntArr;
}
}
[5, [3, 4, 4, 6, 1, 6, 4]]
class Solution {
public int[] solution(int N, int[] A) {
int [] cntArr = new int[N];
int max = 0;
int tmpMax = 0;
int tmp = 0;
for(int i=0; i<A.length; i++){
if(A[i] == N+1){
tmpMax = max;
}else{
if( tmpMax < cntArr[A[i]-1] ){
cntArr[A[i]-1]++;
}else{
cntArr[A[i]-1] = tmpMax + 1;
}
if( max < cntArr[A[i]-1] )
max = cntArr[A[i]-1];
}
}
for(int i=0;i<cntArr.length;i++){
if(cntArr[i] < tmpMax){
cntArr[i] = tmpMax;
}
}
return cntArr;
}
}
The solution obtained perfect score.