Skip to content

Commit 9fb74d9

Browse files
committed
all
1 parent e550273 commit 9fb74d9

File tree

7 files changed

+329
-0
lines changed

7 files changed

+329
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[]}
4+
*/
5+
6+
7+
8+
function findMax(currentElement, arr) {
9+
for (let i = 0; i < arr.length; i++) {
10+
if (currentElement < arr[i]) {
11+
return arr[i];
12+
}
13+
}
14+
return -1;
15+
}
16+
var nextGreaterElements = function (nums) {
17+
let ansArr = [];
18+
for (let i = 0; i < nums.length; i++) {
19+
ansArr.push(findMax(nums[i], nums));
20+
}
21+
return ansArr;
22+
};
23+
console.log(nextGreaterElements([1, 5, 3, 6, 8]));
24+
25+
// [1, 2, 3, 5,4, 3]=[1, 2, 3, 4, 3 1, 2, 3, 4, 3]
26+
// [1, 2, 1] = [1, 2, 1 1, 2, 1]
27+
// [1, 2, 3, 2, 1] = [1, 2, 3, 2, 1 1, 2, 3, 2, 1]
28+
// [5,4,3,2,1] = [5,4,3,2,1 5,4,3,2,1]
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
3+
532. K-diff Pairs in an Array
4+
https://leetcode.com/problems/k-diff-pairs-in-an-array/discuss/?currentPage=1&orderBy=hot&query=
5+
6+
*/
7+
8+
/**
9+
* @param {number[]} nums
10+
* @param {number} k
11+
* @return {number}
12+
*/
13+
// 0 <= i, j < nums.length
14+
// i != j
15+
// nums[i] - nums[j] == k
16+
17+
var findPairs = function (nums, k) {
18+
var map = new Map(); // we make a map to store key pair index value
19+
var length = nums.length;
20+
for (let i = 0; i < nums.length; i++) {
21+
for (let j = i; j < nums.length; j++) {
22+
// These are the constraints
23+
if (
24+
i >= 0
25+
&& j < length
26+
&& i != j
27+
&& (Math.abs(nums[i] - nums[j]) === k)) {
28+
if ((!map.has(`${nums[j]}${nums[i]}`) && (!map.has(`${nums[i]}${nums[j]}`)))) {
29+
map.set(`${nums[i]}${nums[j]}`, 1);
30+
}
31+
}
32+
}
33+
}
34+
// console.log(map);
35+
return map.size;
36+
};
37+
console.log(findPairs([0, 0, 1, 0, 0], 1));

Medium/54. Spiral Matrix.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* @param {number[][]} matrix
3+
* @return {number[]}
4+
*/
5+
var spiralOrder = function (matrix) {
6+
7+
var ansArray = [];
8+
var row = matrix.length;
9+
var col = matrix[0].length;
10+
11+
var startingRow = 0;
12+
var startingCol = 0;
13+
var endRow = matrix.length - 1;
14+
var endCol = matrix[0].length - 1;
15+
16+
var count = 0;
17+
var total = row * col;
18+
while (count < total) {
19+
for (let index = startingCol; count < total && index <= endCol; index++) {
20+
ansArray.pop(matrix[startingRow][index]);
21+
count++;
22+
}
23+
startingRow++;
24+
for (let index = startingRow; count < total && index <= endRow; index++) {
25+
ansArray.push(matrix[index][endCol]);
26+
count++;
27+
}
28+
endCol--;
29+
for (let index = endCol; count < total && index >= startingCol; index--) {
30+
ansArray.push(matrix[endRow][index]);
31+
count++;
32+
}
33+
endRow--;
34+
for (let index = endRow; count < total && index >= startingRow; index--) {
35+
ansArray.push(matrix[index][startingCol]);
36+
count++;
37+
}
38+
startingCol++;
39+
}
40+
console.log(ansArray);
41+
};
42+
43+
spiralOrder([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);

Medium/56. Merge Intervals.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[][]} intervals
3+
* @return {number[][]}
4+
*/
5+
var merge = function (intervals) {
6+
var ansArr = [[]];
7+
for (let i = 0; i < intervals.length - 1; i++) {
8+
9+
if (intervals[i][0] >= intervals[i + 1][0]) {
10+
intervals[i][0] = intervals[i + 1][0];
11+
intervals.splice(i + 1, 1);
12+
}
13+
else if (intervals[i][1] >= intervals[i + 1][0]) {
14+
intervals[i][1] = intervals[i + 1][1];
15+
intervals.splice(i + 1, 1);
16+
}
17+
}
18+
return intervals;
19+
};
20+
merge([[1, 4], [0, 4]]);

Medium/74. Search a 2D Matrix.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
74. Search a 2D Matrix
3+
https://leetcode.com/problems/search-a-2d-matrix/
4+
*/
5+
6+
/* TIME COMPLEXITY O(LogN) */
7+
8+
/**
9+
* @param {number[][]} matrix
10+
* @param {number} target
11+
* @return {boolean}
12+
*/
13+
var searchMatrix = function (matrix, target) {
14+
var row = matrix.length; // how many row in 2D array
15+
var col = matrix[0].length; // how many column in 2D array
16+
17+
var start = 0; // make a start pointer
18+
var end = row * col - 1; // make a end pointer
19+
var mid = Math.floor((start + end) / 2); // To find mid element
20+
while (start <= end) {
21+
mid = Math.floor((start + end) / 2);
22+
23+
// row = mid / col;
24+
// col = mid % col;
25+
26+
var elementIndex = matrix[Math.floor(mid / col)][Math.floor(mid % col)];
27+
28+
if (elementIndex == target) {
29+
return true; // when target is find
30+
}
31+
if (elementIndex > target) {
32+
end = mid - 1; // when mid element is greater then target
33+
} else {
34+
start = mid + 1;
35+
}
36+
}
37+
return false;
38+
};
39+
console.log(searchMatrix([
40+
[1, 3, 5, 7],
41+
[10, 11, 16, 20],
42+
[23, 30, 34, 60]
43+
],
44+
13));
45+
46+
/*
47+
Explanation:
48+
49+
how to find total row = martix.length
50+
how to find total column = matrinx[0].length
51+
52+
how to find particular index value with linear array
53+
(col * i) + j = linear array index value
54+
(3*1)+1 = [4] = 5
55+
like:
56+
[
57+
0 1 2
58+
0 [1, 2, 3],
59+
1 [4, 5, 6],
60+
2 [7, 8, 9],
61+
];
62+
[1,2,3,4,5,6,7,8,9]
63+
64+
65+
how to find 2D array index value with linear array
66+
like:
67+
[1,2,3,4,5,6,7,8,9]
68+
[
69+
[1, 2, 3],
70+
[4, 5, 6],
71+
[7, 8, 9],
72+
];
73+
74+
row = mid / col;
75+
col = mid % col;
76+
77+
* /
78+
79+
// [1, 2, 5, 7, 10, 11, 16, 20, 23, 30, 34, 60]

Practice Problems/2Darray.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
3+
how to find total row = martix.length
4+
how to find total column = matrinx[0].length
5+
6+
how to find particular index value with linear array
7+
(col * i) + j = linear array index value
8+
like:
9+
[
10+
0 1 2
11+
0 [1, 2, 3],
12+
1 [4, 5, 6],
13+
2 [7, 8, 9],
14+
];
15+
[1,2,3,4,5,6,7,8,9]
16+
17+
18+
how to find 2D array index value with linear array
19+
like:
20+
[1,2,3,4,5,6,7,8,9]
21+
[
22+
[1, 2, 3],
23+
[4, 5, 6],
24+
[7, 8, 9],
25+
];
26+
27+
row = mid / col;
28+
col = mid % col;
29+
30+
*/
31+
32+
// Print Rom Sum
33+
function PrintSum(arr, row, col) {
34+
for (let i = 0; i < row; i++) {
35+
var sum = 0;
36+
for (let j = 0; j < col; j++) {
37+
sum += arr[i][j];
38+
}
39+
console.log(sum);
40+
}
41+
}
42+
43+
// Print Col Sum
44+
function PrintSum(arr, row, col) {
45+
for (let i = 0; i < col; i++) {
46+
if (i % 2 == 0) {
47+
for (let j = 0; j < row; j++) {
48+
console.log(arr[j][i]);
49+
}
50+
} else {
51+
for (let j = row - 1; j >= 0; j--) {
52+
console.log(arr[j][i]);
53+
}
54+
}
55+
}
56+
}
57+
58+
function array2D() {
59+
var arr = [
60+
[1, 2, 3],
61+
[4, 5, 6],
62+
[7, 7, 8],
63+
];
64+
// console.log(arr);
65+
PrintSum(arr, 3, 3);
66+
}
67+
array2D();
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
Next Greater Element (NGE) for every element in given Array
3+
4+
Given an array, print the Next Greater Element (NGE) for every element.
5+
6+
The Next greater Element for an element x is the first greater element on the right side of x in the array. Elements for which no greater element exist, consider the next greater element as -1.
7+
8+
Example:
9+
10+
Input: arr[] = [ 4 , 5 , 2 , 25 ]
11+
12+
Output: 4 –> 5
13+
14+
5 –> 25
15+
16+
2 –> 25
17+
18+
25 –> -1
19+
20+
Explanation: except 25 every element has an element greater than them present on the right side
21+
22+
Input: arr[] = [ 13 , 7, 6 , 12 ]
23+
24+
Output: 13 –> -1
25+
26+
7 –> 12
27+
28+
6 –> 12
29+
30+
12 –> -1
31+
32+
Explanation: 13 and 12 don’t have any element greater than them present on the right side
33+
34+
*/
35+
36+
37+
function NextGreaterElement(arr) {
38+
var max;
39+
var soFarMax;
40+
var map = new Map();
41+
for (let i = arr.length - 1; i >= 0; i--) {
42+
if (arr[i] < soFarMax) {
43+
map.set(arr[i], soFarMax);
44+
soFarMax = arr[i];
45+
} else if (arr[i] < max) {
46+
map.set(arr[i], max);
47+
soFarMax = arr[i];
48+
} else {
49+
max = arr[i];
50+
map.set(arr[i], -1);
51+
}
52+
}
53+
console.log(map);
54+
}
55+
NextGreaterElement([1, 2, 1]);

0 commit comments

Comments
 (0)