{"id":18024885,"url":"https://github.com/sachinkumar579/dsa","last_synced_at":"2025-10-05T05:58:46.533Z","repository":{"id":134598082,"uuid":"437006014","full_name":"sachinkumar579/dsa","owner":"sachinkumar579","description":"Practicing Data Structures and Algorithms","archived":false,"fork":false,"pushed_at":"2022-02-14T14:56:12.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T04:14:43.343Z","etag":null,"topics":["dsa-practice","leetcode"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sachinkumar579.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-10T14:24:52.000Z","updated_at":"2021-12-30T17:15:13.000Z","dependencies_parsed_at":"2023-08-15T03:34:48.692Z","dependency_job_id":null,"html_url":"https://github.com/sachinkumar579/dsa","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinkumar579%2Fdsa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinkumar579%2Fdsa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinkumar579%2Fdsa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinkumar579%2Fdsa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sachinkumar579","download_url":"https://codeload.github.com/sachinkumar579/dsa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234850,"owners_count":20905852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsa-practice","leetcode"],"created_at":"2024-10-30T07:13:54.133Z","updated_at":"2025-10-05T05:58:41.503Z","avatar_url":"https://github.com/sachinkumar579.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Structures and Algorithms\n\n1 [Binary Search](#BinarySearch)  \u003cbr/\u003e\n2 [Fibonacci Number](#FibonacciNumber)  \u003cbr/\u003e\n3 [Pascal Numbers](#PascalNumbers)  \u003cbr/\u003e\n4 [Running Sum Of 1D Array](#RunningSumOf1DArray)  \u003cbr/\u003e\n5 [Shuffle Array](#ShuffleArray)  \u003cbr/\u003e\n6 [Reverse A String](#ReverseAString)   \u003cbr/\u003e\n7 [Matrix DiagonalSum](#MatrixDiagonalSum)  \u003cbr/\u003e\n8 [Reverse Integer](#ReverseInteger)   \u003cbr/\u003e\n9 [Greatest Number Of Candies](#GreatestNumberOfCandies)  \u003cbr/\u003e\n10 [Jewels And Stones](#JewelsAndStones)  \u003cbr/\u003e\n11 [Merge Sorted Array](#MergeSortedArray)   \u003cbr/\u003e\n12 [Max Product of 2 numbers in an Array](#MaxProduct) \u003cbr/\u003e\n13 [Missing Number](#MissingNumber)   \u003cbr/\u003e\n14 [Majority Finder](#MajorityFinder)   \u003cbr/\u003e\n15 [Single Number](#SingleNumber)   \u003cbr/\u003e\n16 [Rotate Array](#RotateArray)   \u003cbr/\u003e\n17 [TwoSum](#TwoSum)  \u003cbr/\u003e\n18 [MoveZeros](#MoveZeros) \u003cbr/\u003e\n19 [SquaresOfSortedArray](#SquaresOfSortedArray) \u003cbr/\u003e\n20 [MaxSubArray](#MaxSubArray)  \u003cbr/\u003e\n21 [SearchInRotatedSortedArray](#SearchInRotatedSortedArray)\n\n# BinarySearch \n\nhttps://leetcode.com/problems/search-insert-position/\n\n      const find =(nums,target)=\u003e{\n      let low = 0\n      let high = nums.length-1\n      let mid = Math.floor((low+high)/2)\n      let counter = 0 \n\n      while(counter\u003cMath.sqrt(nums.length+1)){\n       counter+=1\n       if(target==nums[mid]) return mid\n       else if(target\u003cnums[mid]) high = mid-1\n       else if(target\u003enums[mid]) low = mid+1\n       mid = Math.floor((low+high)/2)\n      }\n      return low;\n     }\n\n     console.log(find([1,3,4,7,8,9,13,34,67,89],89))\n     \n# FibonacciNumber\n\nhttps://leetcode.com/problems/fibonacci-number/\n\n        let fib = (n)=\u003e{\n            let num1=0\n            let num2=1\n            let sum =0;\n\n            if(n==1)\n              return 1\n\n            for(let i=0;i\u003cn-1;i++){\n              sum = num2+num1\n              num1=num2\n              num2=sum   \n            }\n        return sum\n        }\n   \n # PascalNumbers\n \n https://leetcode.com/problems/pascals-triangle/\n\n          const generate = function (numRows) {\n              let pascal = [[1]];\n              for (var i = 1; i \u003c numRows; i++) {\n              pascal[i] = [1]; // 1st element of all the rows is 1\n              for (var j = 1; j \u003c i; j++) {\n                 pascal[i][j] = pascal[i - 1][j - 1] + pascal[i - 1][j];\n              }\n\n              pascal[i][i] = 1; // last element of all the rows is 1\n              console.log(...pascal)  \n           }\n           return pascal;\n           };\n           console.log(generate(10))\n\n# RunningSumOf1DArray\n\nhttps://leetcode.com/problems/running-sum-of-1d-array/\n\n           let n =[3,1,2,10,1]\n           let sumArr = []\n           let sum = 0\n\n           for(let i =0;i\u003cn.length;i++){\n             sumArr.push(sum+n[i])\n             sum=sum+n[i] \n           }\n\n           console.log(sumArr)\n\n# ShuffleArray\n\nhttps://leetcode.com/problems/shuffle-the-array/\n\n           let arr = [1,2,3,7,4,5,5,8]\n           let res = []\n\n           for(let i=0;i\u003carr.length/2;i++){ \n               res[i*2]=arr[i]\n               res[i*2+1] =arr[arr.length/2+i]\n           }\n           console.log(res)\n\n# ReverseAString\n\nhttps://leetcode.com/problems/reverse-string/submissions/\n\n     class Solution {\n         public void reverseString(char[] str) {\n           for(int i=0;i\u003cstr.length/2;i++){\n            char t = str[str.length-1-i];\n            str[str.length-1-i]=str[i];\n            str[i]=t;\n         }\n       }\n     }\n\n# MatrixDiagonalSum\n\nhttps://leetcode.com/problems/matrix-diagonal-sum/\n\n    let mat = [[1,2,3],[4,5,6],[7,8,9]]\n    let sum = 0\n\n    for(let i =0;i\u003cmat.length;i++){\n      if(i!=mat.length-1-i)\n       sum = sum + mat[i][i]+mat[i][mat.length-1-i]\n         else \n       sum = sum+mat[i][i]\n    }\n\n    console.log(sum)\n\n# ReverseInteger\n\nhttps://leetcode.com/problems/reverse-integer/\n\n       public static int reverse(int x) {\n        int rev = 0;\n        int rem = 0;\n\n        while(x!=0){\n            rem = x%10;\n            x=x/10;\n            if(rev\u003eInteger.MAX_VALUE/10 || rev\u003c-Integer.MIN_VALUE/10)\n                return 0;\n            rev = rev *10 +rem;\n        }\n\n\n        return  rev;\n      }\n      \n      \n# GreatestNumberOfCandies\n\nhttps://leetcode.com/problems/kids-with-the-greatest-number-of-candies/\n\n     var kidsWithCandies = function(candies, extraCandies) {\n  \n     let large= Math.max(candies)\n     \n     for(let i=0;i\u003ccandies.length;i++){\n       if(candies[i]+extraCandies\u003e=large)\n           candies[i]=true\n           else\n           candies[i]=false\n     }\n     \n     return candies;\n\n    };\n\n# JewelsAndStones\n\nhttps://leetcode.com/problems/jewels-and-stones/\n\n     var numJewelsInStones = function(jewels, stones) {\n           let count = 0;\n              for(str of stones)\n               {\n                for(strs of jewels){\n                   if(str===strs){\n                   count+=1;\n                   break;\n               }\n             }\n          }\n\n        return count; \n     };\n\n#  MergeSortedArray\n\nhttps://leetcode.com/problems/merge-sorted-array/submissions/\n\n      var merge = function(nums1, m, nums2, n) {\n\n      for (let index = 0; index\u003cn ; index++) {        \n          nums1[m+index]=nums2[index]\n      }\n \n      for (let i = 0; i \u003c m+n; i++) {\n        for (let j = i+1; j \u003c m+n; j++) {\n               if(nums1[j]\u003cnums1[i]){\n                   let temp = nums1[i]\n                   nums1[i] = nums1[j]\n                   nums1[j] = temp\n               }\n        }  \n     }\n\n     console.log(nums1)\n      \n    }\n    \n    Time complexity - O(m^2 + n^2)\n    \n    \n    var merge = function(nums1, m, nums2, n) {\n    \n     let num2Ind = n-1\n     let num1Ind = m-1\n     let i = m+n-1\n\n     while(num2Ind\u003e=0) { \n       if(nums1[num1Ind]\u003enums2[num2Ind])\n          {\n          nums1[i]=nums1[num1Ind]\n          num1Ind-=1\n          }\n      else{\n        nums1[i]=nums2[num2Ind]\n        num2Ind-=1\n      }\n       i-=1 \n     }     \n    \n    return nums1;\n    };\n    \n    Time complexity - O(m+n)\n    \n# MaxProduct\n\nhttps://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/\n\n      var maxProduct = function(nums) {\n    \n      let numsArr = nums.sort((a,b)=\u003ea-b)\n      return (numsArr[nums.length-1]-1)*(numsArr[nums.length-2]-1)\n    \n      };\n      \n# MissingNumber\n\nhttps://leetcode.com/problems/missing-number/\n  \n    var missingNumber = function(nums) {\n\n    let sum = 0;\n\n    for(let i=0;i\u003cnums.length;i++){\n        sum = sum+nums[i];      \n    }\n\n    return nums.length*(nums.length+1)/2-sum\n \n    };\n      \n# MajorityFinder\n\nhttps://leetcode.com/problems/majority-element/submissions/\n\n     var majorityElement = function(nums) {\n    \n     let map = new Map()\n     for (let index = 0; index \u003c nums.length; index++) {\n              if(map.has(nums[index])){\n                      map.set(nums[index],map.get(nums[index])+1)\n              } else{\n                map.set(nums[index],1)\n              }\n     } \n\n     let max =0 , maxKey;\n     map.forEach((value,key)=\u003e{\n       if(value\u003emax){\n         max = value\n         maxKey = key\n       }\n     })\n\n     return maxKey; \n    \n    };\n\n\n# SingleNumber\n\nhttps://leetcode.com/problems/single-number/\n\n    var singleNumber = function(nums) {\n    \n     let set = new Set()\n       for (let index = 0; index \u003c nums.length; index++) {      \n     if(set.has(nums[index]))\n        set.delete(nums[index])\n     else    \n     set.add(nums[index])\n     }\n     return(set.values().next().value)\n    \n    };\n\n# RotateArray\n\nhttps://leetcode.com/problems/rotate-array/\n\n// Couldn't do this in-place\n\n     var rotate = function (nums, k) {\n       k = k % nums.length;\n\n       let resultArr = [];\n\n      for (let index = 0; index \u003c nums.length; index++) {\n        resultArr[(index + k) % nums.length] = nums[index];\n      }\n      console.log(resultArr);\n     };\n\n     rotate([1, 2, 3, 4, 5, 6, 7], 3);\n\n# TwoSum\n\nhttps://leetcode.com/problems/two-sum/\n\n    var twoSum = function(nums, target) {\n      let map = new Map()\n     map.set(nums[0],0)\n     for (let index = 1; index \u003c nums.length; index++) {\n           if(map.has(target-nums[index])){\n               return [index,map.get(target-nums[index])]\n           }\n           map.set(nums[index],index)\n     }\n     };\n\n\n# MoveZeros  \n\nhttps://leetcode.com/problems/move-zeroes/\n\n// Couldn't do this in-place\n\n    var moveZeroes = function(nums) {\n     const length = nums.length\n     let result =[]\n     let counter = 0;\n     \n     for (let index = 0; index \u003clength; index++) {\n         if(nums[index]!=0){\n          result[counter++]=nums[index];\n          }\n     }\n     for (let index = result.length; index \u003c nums.length; index++) {\n          result[index]=0\n     }\n     console.log(result)\n    };\n\n    moveZeroes([0,1,0,3,12])\n\n\n# SquaresOfSortedArray\n\nhttps://leetcode.com/problems/squares-of-a-sorted-array/\n\n\n     var sortedSquares = function(nums) {\n    \n     for (let index = 0; index \u003c nums.length; index++) {     \n          nums[index] = nums[index]*nums[index]\n     }\n\n     for (let index = 0; index \u003c nums.length; index++) {     \n          for (let j = index+1; j \u003c nums.length; j++) {     \n                 if(nums[j]\u003cnums[index]){\n                    let temp = nums[j]\n                    nums[j] = nums[index]\n                    nums[index] = temp\n                 }\n          } \n     }\n     \n     console.log(nums)\n    };\n\n    sortedSquares([-4,-2,-1,0,3,12])\n\n\n\n# MaxSubArray\n\nhttps://leetcode.com/problems/maximum-subarray/\n\n     var sortedSquares = function(nums) {\n    \n     let maxSum =  nums[0] \n     const length = nums.length;\n\n     for (let index = 0; index \u003c length; index++) {     \n          let sum = 0;\n          for (let j = index; j \u003c length; j++) {    \n                 sum = sum+nums[j]\n                 if(sum\u003emaxSum){\n                       maxSum=sum\n                  }                 \n          } \n     }\n\n     return maxSum;\n     };\n\n// Not the greatest of solutions because time complexity is O(n^2) \n\n\n# SearchInRotatedSortedArray\n\nhttps://leetcode.com/problems/search-in-rotated-sorted-array/\n\n     var search = function(nums, target) {\n           let low = 0;\n           let high = nums.length - 1;\n           let mid;\n\n           while (low \u003c= high) {\n                 mid = Math.floor((low + high) / 2);\n        \n                 if (nums[mid] == target) return mid;\n                 if (nums[mid] \u003c= nums[high]) {\n                 if (target \u003e= nums[mid] \u0026\u0026 target \u003c= nums[high]) low = mid + 1;\n                     else high = mid - 1;\n                 } else {\n                 if (target \u003e= nums[low] \u0026\u0026 target \u003c= nums[mid]) high = mid - 1;\n                 else low = mid + 1;\n                 }\n           }\n      return -1;\n      };\n      \n      \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachinkumar579%2Fdsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsachinkumar579%2Fdsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachinkumar579%2Fdsa/lists"}