Skip to content

Commit f0fa8ca

Browse files
committed
✨ [1187] Make Array Strictly Increasing
1 parent 031542b commit f0fa8ca

File tree

4 files changed

+82
-2
lines changed

4 files changed

+82
-2
lines changed

1187/my_solution.js

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/**
2+
* @param {number[]} arr1
3+
* @param {number[]} arr2
4+
* @return {number}
5+
*/
6+
const makeArrayIncreasing = (arr1, arr2) => {
7+
console.log(arr1)
8+
console.log(arr2)
9+
10+
// let sortedArr2 = [], firstPartOfArr2 = arr2.slice(0, Math.ceil(arr2.length / 2)), secondPartOfArr2 = arr2.slice(Math.ceil(arr2.length / 2));
11+
// console.log(firstPartOfArr2)
12+
// console.log(secondPartOfArr2)
13+
// console.log(arr2)
14+
//
15+
// while (0 < firstPartOfArr2.length || 0 < secondPartOfArr2.length) {
16+
// if (0 === firstPartOfArr2.length && 0 === secondPartOfArr2.length) break;
17+
//
18+
// if (0 < firstPartOfArr2.length && firstPartOfArr2[0] < secondPartOfArr2[0]) {
19+
// sortedArr2.push(firstPartOfArr2.shift());
20+
// }
21+
// }
22+
let count = 0, tmpPrev = null;
23+
for (let i = 0; i < arr1.length; i++) {
24+
let prev = arr1[i - 1];
25+
if (undefined === prev || undefined === arr1[i - 2]) continue;
26+
27+
console.log(`prev:${prev} > arr1[i]:${arr1[i]}`)
28+
if (prev > arr1[i]) {
29+
let expand = 0;
30+
let tmpCount = 0;
31+
while (tmpCount === 0) {
32+
console.log(`expand:${expand}`)
33+
if ((i + expand) === arr1.length) break;
34+
35+
// Get smallest
36+
let toReplace = [], smallest = Infinity;
37+
for (let j = 0; j < arr2.length; j++) {
38+
console.log(`> ? ${arr1[i - 2]} < ${arr2[j]} < ${arr1[i + expand]} - tmpPrev:${tmpPrev}, arr2[j]:${arr2[j]}`)
39+
if (tmpPrev === arr2[j]) return -1;
40+
if (arr1[i - 2] < arr2[j] && arr2[j] < arr1[i + expand]) {
41+
tmpCount++;
42+
// let btwItem = arr2[j];
43+
// arr2.splice(j, 1)
44+
// tmpPrev = btwItem;
45+
// console.log(`> Y ${arr1[i - 2]} < ${arr2[j]} < ${arr1[i + expand]}`)
46+
// arr1[i - 1] = btwItem;
47+
// console.log(arr1)
48+
toReplace.push(arr2[j])
49+
smallest = Math.min(smallest, arr2[j]);
50+
}
51+
}
52+
count += tmpCount;
53+
console.log("toReplace")
54+
console.log(toReplace)
55+
console.log("arr1")
56+
console.log(arr1)
57+
console.log("smallest")
58+
console.log(smallest)
59+
arr1[i - 1] = smallest;
60+
61+
expand++;
62+
}
63+
}
64+
}
65+
66+
return (0 === count) ? -1 : count;
67+
};
68+
69+
let x = null;
70+
// x = makeArrayIncreasing([1, 5, 3, 6, 7], [1, 3, 2, 4]);
71+
// x = makeArrayIncreasing([1, 5, 3, 6, 7], [4, 3, 1]);
72+
// x = makeArrayIncreasing([1, 5, 3, 6, 7], [1, 6, 3, 3]);
73+
// x = makeArrayIncreasing([7, 6, 3, 0, 3], [9]);
74+
x = makeArrayIncreasing([0, 11, 6, 1, 4, 3], [5, 4, 11, 10, 1, 0]);
75+
76+
console.log("Result");
77+
console.log(x);

1187/solution.js

Whitespace-only changes.

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
- [771. Jewels and Stones](./771/)
6868
- [997. Find the Town Judge](./997/)
6969
- [1161. Maximum Level Sum of a Binary Tree](./1161/)
70+
- [1187. Make Array Strictly Increasing](./1187/)
7071
- [1365. How Many Numbers Are Smaller Than the Current Number](./1365/)
7172
- [1512. Number of Good Pairs](./1512/)
7273
- [1569. Number of Ways to Reorder Array to Get Same BST](./1569/)
@@ -116,7 +117,7 @@ Batch create:
116117
NOTE: JS IS HERE
117118
-->
118119
```ssh
119-
chapter=1569 && mkdir ./$chapter && touch ./$chapter/my_solution.js && touch ./$chapter/solution.js && alias x="node ./$chapter/my_solution.js"
120+
chapter=1187 && mkdir ./$chapter && touch ./$chapter/my_solution.js && touch ./$chapter/solution.js && alias x="node ./$chapter/my_solution.js"
120121
```
121122
> then you can use `x` for quick debug.
122123

test.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,6 @@
8686
// console.log(null + 1);
8787

8888
// Decimal
89-
console.log(Math.round(324631.99999999994));
89+
// console.log(Math.round(324631.99999999994));
90+
91+
console.log(0 > 0);

0 commit comments

Comments
 (0)