Today I will teach you top 7 best algorithms to improve your JavaScript skills
best Algorithms to Improve JavaScript Skills as programmer
so let's start to understand JavaScript algorithms
1. how to Find the missing number from the array
const find_missing = function(input) {
let n = input.length + 1;
let sum = 0;
for (let i in input) {
sum += input[i];
}
return Math.floor((n * (n + 1)) / 2) - sum;
};
Input: [1, 2, 3, 4, 6, 7, 8, 9, 10]
Output: 5
2. Inverting integers in JavaScript
const reverse = function(num) {
let result = 0;
while (num !== 0) {
result = result * 10 + num % 10;
// Math.trunc() ζΉζ³δΌε°ζ°εηε°ζ°ι¨εε»ζοΌεͺδΏηζ΄ζ°ι¨ε
num = Math.trunc(num / 10);
}
if (result > 2**31 || result < -(2**31)) return 0;
return result;
};
Input: num = 123
Output: 321
Input: num = -123
Output: -321
3.Array alignment
const permute = function(nums) {
let results = [];
let go = (current) => {
if (current.length === nums.length){
results.push(current);
return;
}
nums.forEach(n => {
if (!current.includes(n)){
go([...current, n]);
}
});
}
go([]);
return results;
};
Input: [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
4.Alignment in strings
const checkPermutation = function(s1, s2) {
const len1 = s1.length, len2 = s2.length;
if (len1 > len2) return false;
const count = Array(26).fill(0);
for (let i = 0; i < len1; i++) {
count[s1.charCodeAt(i)-97]++;
count[s2.charCodeAt(i)-97]--;
}
if (!count.some(e => e !== 0)) return true;
for (let i = len1; i < len2; i++) {
count[s2.charCodeAt(i)-97]--;
count[s2.charCodeAt(i-len1)-97]++;
if (!count.some(e => e !== 0)) return true;
}
return false;
};
Input: s1 = βabβ, s2 = βeidbaoβ
Output: true
Input: s1 = βaaβ, s2 = βeidbaoβ
Output: false
5.Longest valid brackets
const longestValidParentheses = function(S) {
let stack = [-1], ans = 0;
for (let i = 0; i < S.length; i++)
if (S[i] === '(') stack.push(i)
else if (stack.length === 1) stack[0] = i
else stack.pop(), ans = Math.max(ans, i - stack[stack.length-1])
return ans
};
Input: β(()β
Output: 2
Input: β)()())β
Output: 4
6.String multiplication
const multiply = function(num1, num2) {
if (num1 == 0 || num2 == 0) return β0β;
const result = [];
for (let a = num1.length β 1; a >= 0; a β ) {
for (let b = num2.length β 1; b >= 0; b β ) {
const p1 = a + b;
const p2 = a + b + 1;
const sum = (result[p2] ?? 0) + num1[a] * num2[b];
result[p1] = (result[p1] ?? 0) + Math.floor(sum / 10);
result[p2] = sum % 10;
}
}
result[0] == 0 && result.shift();
return result.join(ββ);
};
Input: num1 = β2β, num2 = β3β
Output: β6β
4Sum
const fourSum = function(nums, target) {
let result = [];
let length = nums.length;
if (length < 4) return result;
nums = nums.sort((a, b) => a - b );
for (let i = 0; i < length - 3; i++) {
if (nums[i] === nums[i - 1]) continue;
for (let j = i + 1; j < length - 2; j++) {
if (j > i + 1 && nums[j] === nums[j - 1]) continue;
let k = j + 1;
let l = length - 1;
while (k < l) {
const sum = nums[i] + nums[j] + nums[k] + nums[l];
if (sum === target) {
result.push([nums[i], nums[j], nums[k], nums[l]])
}
if (sum <= target) {
k += 1;
while (nums[k] === nums[k - 1]) {
k += 1;
}
}
if (sum >= target) {
l -= 1;
while (nums[l] === nums[l + 1]) {
l -= 1;
}
}
}
}
}
return result;
};
thank you for reading our best Algorithms to Improve your JavaScript Skills guide
if you have any suggestion than comment
Top comments (1)
The importance of gaming in Javascript is vast. It helps with hand-eye coordination, problem solving, and logic skills. Gaming can also relieve stress, improve moods, and promote social interaction.
Here find how you can improve your JavaScript skills with Javascript gaming