Skip to content

Instantly share code, notes, and snippets.

View carefree-ladka's full-sized avatar
🏠
Working from home

Pawan Kumar carefree-ladka

🏠
Working from home
View GitHub Profile
@carefree-ladka
carefree-ladka / Redux.js
Created December 9, 2024 09:35
Custom Redux Implementation with Custom Middleware
// Redux Store Implementation with Middleware Support
function createStore(reducer, middleware) {
let state;
let listeners = [];
// Get the current state
const getState = () => state;
// Dispatch an action (placeholder, replaced later with middleware logic)
let dispatch = (action) => {
@carefree-ladka
carefree-ladka / Vector.js
Created December 6, 2024 07:31
Altimetric Vector Based Class HackerRank Online Assessment
class Vector {
constructor(x, y) {
this.x = x
this.y = y
}
add = (vector) => {
this.x += vector.x
this.y += vector.y
}
@carefree-ladka
carefree-ladka / useAuth.ts
Last active December 4, 2024 15:18
Custom Hook for Handling idToken
//We can also separate this entire logic in Redux , Context API etc. Which would have made it available globally.
import * as React from 'react';
import jwtDecode, {JwtPayload} from 'jwt-decode';
interface User {
name: string;
[key: string]: string;
}
@carefree-ladka
carefree-ladka / MultiSourceBFS.js
Last active November 16, 2024 06:23
MultiSourceBFS with Maximum Distance to a Point
class MinMaxPriorityQueue {
#heap = []
#compare;
constructor(compare) {
this.#heap = [];
this.#compare = compare || ((a, b) => a - b) //By default, keep it MinHeap
}
@carefree-ladka
carefree-ladka / minimizeDifference.js
Created October 29, 2024 03:57
Minimize Difference
const minimizeDifference = (source, target) => {
const n = source.length;
const sourceValues = Array.from(source, char => char.charCodeAt(0) - 65);
const targetValues = Array.from(target, char => char.charCodeAt(0) - 65);
const resultValues = new Array(n);
let resultSum = targetValues[0]; // Start with the first target value
resultValues[0] = resultSum;
// Calculate result values based on source
for (let i = 1; i < n; i++) {
@carefree-ladka
carefree-ladka / ExpressionPermutations.js
Last active October 21, 2024 03:43
Expression Permutations
function generateExpressions(nums, target) {
const results = [];
const evaluate = (expression) => {
const tokens = expression.match(/(\d+|\+|\-|\*|\/|\(|\))/g);
const output = [];
const operators = [];
const precedence = { '+': 1, '-': 1, '*': 2, '/': 2 };
@carefree-ladka
carefree-ladka / QuickSelect.js
Last active September 6, 2024 16:35
Quick Select with Hoare's Partition approach | Works on Leetcode
/*
Date: 06-09-2024
Time: 21:56
Author: Pawan Kumar
Algorithm :Quick Select
Kth Largest & Kth Smallest Elements in an Array
*/
// Function to swap elements in an array
function swap(arr, i, j) {
@carefree-ladka
carefree-ladka / Event.js
Created August 23, 2024 13:56
Tricky Event Loop Based Question
console.log('Start');
setTimeout(() => {
console.log('Inside setTimeout');
}, 0);
Promise.resolve()
.then(() => {
console.log('Inside first promise');
return new Promise((resolve) => {
@carefree-ladka
carefree-ladka / StarRating.js
Created August 23, 2024 12:44
Star Rating Component
import { useState } from 'react';
// Star component
const Star = ({ filled, onClick, onMouseEnter, onMouseLeave }) => (
<span
style={{ cursor: 'pointer', fontSize: '24px', color: filled ? 'gold' : 'gray' }}
onClick={onClick}
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
>
\documentclass[letterpaper,11pt]{article}
\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fancyhdr}