Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

‎Medium/503. Next Greater Element II.js

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]

‎Medium/532. K-diff Pairs in an Array.js

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)

AltStyle によって変換されたページ (->オリジナル) /