@@ -42,39 +42,71 @@ public static void main(String[] args) {
4242 // Logic.
4343 // Sort the option array.
4444 Arrays .sort (arr2 );
45- for (int i = 1 ; i < arr1 .length - 1 ; i ++) {
46- if (arr1 [i ] >= arr1 [i + 1 ]) {
47- boolean isValueFounded = false ;
48- if (!isInitialValueChanged ) {
49- for (int j = 0 ; j < arr2 .length ; j ++) {
50- if (arr1 [i - 1 ] < arr2 [j ]) {
51- arr1 [i ] = arr2 [j ];
52- isValueFounded = true ;
53- isInitialValueChanged = true ;
54- i --;
55- ans ++;
56- break ;
57- }
58- }
45+ // Check for the first index.
46+ if (arr1 [0 ]>=arr2 [1 ]){
47+ boolean isValueFounded = false ;
48+ for (int j = 0 ; j < arr2 .length ; j ++) {
49+ if (arr1 [ 1 ] > arr2 [j ]) {
50+ arr1 [0 ] = arr2 [j ];
51+ isValueFounded = true ;
52+ ans ++;
53+ break ;
5954 }
60- if (!isValueFounded ) {
61- for (int j = 0 ; j < arr2 .length ; j ++) {
62- if (arr1 [i ] < arr2 [j ]) {
63- arr1 [i + 1 ] = arr2 [j ];
64- isValueFounded = true ;
65- isInitialValueChanged = false ;
66- ans ++;
67- break ;
68- }
55+ }
56+ if (!isValueFounded ){
57+ ans =-1 ;
58+ }
59+
60+ // Check for the last index.
61+ if (ans !=-1 && arr1 [arr1 .length -2 ]>=arr1 [arr1 .length -1 ]){
62+ isValueFounded = false ;
63+ for (int j = 0 ; j < arr2 .length ; j ++) {
64+ if (arr1 [arr1 .length -2 ] < arr2 [j ]) {
65+ arr1 [arr1 .length -1 ] = arr2 [j ];
66+ isValueFounded = true ;
67+ ans ++;
68+ break ;
6969 }
7070 }
71- if (!isValueFounded ) {
72- ans = -1 ;
73- break ;
71+ if (!isValueFounded ){
72+ ans =-1 ;
7473 }
7574 }
7675 }
7776
77+ if (ans !=-1 ){ for (int i = 1 ; i < arr1 .length - 1 ; i ++) {
78+ if (arr1 [i ] >= arr1 [i + 1 ]) {
79+ boolean isValueFounded = false ;
80+ if (!isInitialValueChanged ) {
81+ for (int j = 0 ; j < arr2 .length ; j ++) {
82+ if (arr1 [i - 1 ] < arr2 [j ]) {
83+ arr1 [i ] = arr2 [j ];
84+ isValueFounded = true ;
85+ isInitialValueChanged = true ;
86+ i --;
87+ ans ++;
88+ break ;
89+ }
90+ }
91+ }
92+ if (!isValueFounded ) {
93+ for (int j = 0 ; j < arr2 .length ; j ++) {
94+ if (arr1 [i ] < arr2 [j ]) {
95+ arr1 [i + 1 ] = arr2 [j ];
96+ isValueFounded = true ;
97+ isInitialValueChanged = false ;
98+ ans ++;
99+ break ;
100+ }
101+ }
102+ }
103+ if (!isValueFounded ) {
104+ ans = -1 ;
105+ break ;
106+ }
107+ }
108+ }}
109+
78110 // Display the result.
79111 if (ans > 0 ) {
80112 System .out .println ("Yes, array can be made strictly increasing using the values from another array." );
0 commit comments