@@ -42,39 +42,71 @@ public static void main(String[] args) {
42
42
// Logic.
43
43
// Sort the option array.
44
44
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 ;
59
54
}
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 ;
69
69
}
70
70
}
71
- if (!isValueFounded ) {
72
- ans = -1 ;
73
- break ;
71
+ if (!isValueFounded ){
72
+ ans =-1 ;
74
73
}
75
74
}
76
75
}
77
76
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
+
78
110
// Display the result.
79
111
if (ans > 0 ) {
80
112
System .out .println ("Yes, array can be made strictly increasing using the values from another array." );
0 commit comments