Skip to content

Instantly share code, notes, and snippets.

View markbrutx's full-sized avatar

Magzhan markbrutx

View GitHub Profile
@markbrutx
markbrutx / min-cost-climbing-stairs.js
Created August 3, 2023 19:33
746. Min Cost Climbing Stairs
/**
* @param {number[]} cost
* @return {number}
*/
var minCostClimbingStairs = function(cost) {
// recursive traverse array
cost.unshift(0, 0)
for (var step = 2; step < cost.length; step++) {
// recalculate min cost
cost[step] += Math.min(cost[step - 1], cost[step - 2])
@markbrutx
markbrutx / climbing-stairs.js
Created August 3, 2023 19:05
70. Climbing Stairs
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
if (n <= 3) {
return n;
}
let prev = 2;
@markbrutx
markbrutx / word-ladder.js
Created August 2, 2023 21:12
127. Word Ladder
/**
* @param {string} beginWord
* @param {string} endWord
* @param {string[]} wordList
* @return {number}
*/
var ladderLength = function(beginWord, endWord, wordList) {
// edge case
if(wordList.indexOf(endWord) === -1) {
return 0
@markbrutx
markbrutx / graph-valid-tree.js
Created August 1, 2023 20:45
261. Graph Valid Tree
/**
* @param {number} n
* @param {number[][]} edges
* @return {boolean}
*/
var validTree = function(n, edges) {
if (!n) {
return true;
}
@markbrutx
markbrutx / number-of-connected-components-in-an-undirected-graph.js
Created July 31, 2023 13:28
323. Number of Connected Components in an Undirected Graph
class UnionFind {
constructor() {
this.parent = {}
}
findParent(x) {
if (this.parent[x] === undefined) {
this.parent[x] = x
}
@markbrutx
markbrutx / redundant-connection.js
Created July 30, 2023 21:21
684. Redundant Connection
/**
* @param {number[][]} edges
* @return {number[]}
*/
var findRedundantConnection = function(edges) {
const parrents = Array.from({
length: edges.length + 1
}, (v, i) => i)
const ranks = Array.from({
@markbrutx
markbrutx / course-schedule-ii.js
Created July 29, 2023 18:12
210. Course Schedule II
/**
* @param {number} numCourses
* @param {number[][]} prerequisites
* @return {number[]}
*/
var findOrder = function(numCourses, prerequisites) {
let crsPre = {}
for(let i = 0; i< numCourses; i++){
crsPre[i] = []
@markbrutx
markbrutx / course-schedule.js
Created July 28, 2023 20:46
207. Course Schedule
/**
* @param {number} numCourses
* @param {number[][]} prerequisites
* @return {boolean}
*/
var canFinish = function(numCourses, prerequisites) {
const preMap = new Array(numCourses).fill(0).map(()=>[])
for(let i = 0; i < prerequisites.length; i++) {
let [crs, pre] = prerequisites[i]
@markbrutx
markbrutx / walls-and-gates.js
Created July 27, 2023 14:13
286. Walls and Gates
/**
* @param {number[][]} rooms
* @return {void} Do not return anything, modify rooms in-place instead.
*/
var wallsAndGates = function(rooms) {
if(!rooms || rooms.length === 0) {
return;
}
let ROWS = rooms.length;
@markbrutx
markbrutx / rotting-oranges.js
Created July 26, 2023 14:15
994. Rotting Oranges
/**
* @param {number[][]} grid
* @return {number}
*/
var orangesRotting = function(grid) {
// counter for
let time = 0;
let fresh = 0; // how many fresh oranges
let rotten = [] // cords of rotten oranges