DEV Community

Cover image for Top 7 best Algorithms to Improve your JavaScript SkillsπŸš€ πŸš€
Ashish donga
Ashish donga

Posted on

Top 7 best Algorithms to Improve your JavaScript SkillsπŸš€ πŸš€

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;
};
Enter fullscreen mode Exit fullscreen mode
Input: [1, 2, 3, 4, 6, 7, 8, 9, 10]
Output: 5

Enter fullscreen mode Exit fullscreen mode

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;
};

Enter fullscreen mode Exit fullscreen mode
Input: num = 123
Output: 321
Input: num = -123
Output: -321
Enter fullscreen mode Exit fullscreen mode

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;
};
Enter fullscreen mode Exit fullscreen mode
Input: [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Enter fullscreen mode Exit fullscreen mode

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;
};
Enter fullscreen mode Exit fullscreen mode
Input: s1 = β€œab”, s2 = β€œeidbao”
Output: true
Input: s1 = β€œaa”, s2 = β€œeidbao”
Output: false

Enter fullscreen mode Exit fullscreen mode

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
};
Enter fullscreen mode Exit fullscreen mode
Input: β€œ(()”
Output: 2
Input: β€œ)()())”
Output: 4
Enter fullscreen mode Exit fullscreen mode

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(β€˜β€™);
};
Enter fullscreen mode Exit fullscreen mode
Input: num1 = β€œ2”, num2 = β€œ3”
Output: β€œ6”
Enter fullscreen mode Exit fullscreen mode

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;
};
Enter fullscreen mode Exit fullscreen mode

thank you for reading our best Algorithms to Improve your JavaScript Skills guide

if you have any suggestion than comment

Top comments (1)

Collapse
 
imakashrana profile image
Akash Chauhan

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