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 / MorrisTraversal.js
Last active August 7, 2024 17:39
Morris Traversal
//https://gist.github.com/carefree-ladka/f141d0efcefb0260f380daea7cdab425
class TreeNode {
constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}
@carefree-ladka
carefree-ladka / InfiniteScroller.js
Created June 30, 2024 13:12
Infinite Scrolling in React.js
import React, { useState, useEffect } from 'react';
const InfiniteScroll = () => {
const [data, setData] = useState([]);
const [page, setPage] = useState(1); // Track current page
const [loading, setLoading] = useState(false); // Track loading state
const fetchData = async () => {
setLoading(true); // Set loading state
try {
@carefree-ladka
carefree-ladka / FenwickTree.js
Created July 29, 2024 07:03
FenwickTree Implementation For Range Sum Leetcode
class FenwickTree {
constructor(size) {
this.size = size;
this.tree = Array(size + 1).fill(0); // Fenwick Tree array with 1-based indexing
}
update(index, delta) {
// Update the tree with the delta
for (let i = index; i <= this.size; i += i & -i) {
this.tree[i] += delta; // Add delta to the current value
@carefree-ladka
carefree-ladka / SegmentTree.js
Last active July 29, 2024 11:10
Segment Tree Implementation
class SegmentTree {
constructor(arr) {
this.arr = arr
this.n = arr.length;
this.tree = Array(4 * this.n).fill(0);
this.#build(arr, 0, 0, this.n - 1);
}
#build = (arr, node, start, end) => {
if (start === end) {
@carefree-ladka
carefree-ladka / Trie.js
Created August 7, 2024 09:11
Autocomplete Feature using Trie
class TrieNode {
constructor() {
this.children = {};
this.isEndOfWord = false;
this.word = null; // Store the complete word ending at this node
}
}
class Trie {
constructor() {
@carefree-ladka
carefree-ladka / SegmenTree.js
Created August 10, 2024 05:08
SegmenTree sum, avg, min , max
class SegmentTree {
constructor(arr) {
this.n = arr.length;
this.treeSum = Array(4 * this.n).fill(0);
this.treeMin = Array(4 * this.n).fill(Infinity);
this.treeMax = Array(4 * this.n).fill(-Infinity);
this.build(arr, 0, 0, this.n - 1);
}
build(arr, node, start, end) {
@carefree-ladka
carefree-ladka / BinaryTree.js
Last active August 10, 2024 12:44
BinaryTree recursive & iterative implementaion
class TreeNode {
constructor(val = 0, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}
}
const buildTree = (arr) => {
@carefree-ladka
carefree-ladka / QuickSelect.js
Last active August 12, 2024 13:26
Quick Select Generic Solution for string & number
function partition(arr, lo, hi, compare) {
// Choose a random pivot and move it to the start
const randomIndex = Math.floor(Math.random() * (hi - lo + 1)) + lo;
swap(arr, lo, randomIndex);
const pivot = arr[lo];
let i = lo + 1; // Start just after the pivot
let j = hi;
@carefree-ladka
carefree-ladka / MinMaxPriorityQueue.js
Last active December 1, 2024 11:27
MinMaxPriorityQueue
class MinMaxPriorityQueue {
#heap = []
#compare;
constructor(compare = (a, b) => a - b) {
this.#compare = compare; // Default to Min-Heap if no compare function is provided
}
// Add a new element to the priority queue
\documentclass[letterpaper,11pt]{article}
\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fancyhdr}