Skip to content

Yuuuuuu-xue/DataStructures_and_Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataStructures_and_Algorithms

Notes from CSC236, 263, 373 and also the LeetCode journey!

Table of Contents:

Abstract Data Type and Data Structure

  • Abstract Data Type: is the set of objects together with operations.
    • i.e. Stack, Queue, Priority Queue
  • Data Structure: is the implementation of an ADT.
    • i.e. We can use List or LinkedList to implement Queue

Runtime Notation

  • Big O: upper bound, worst case, argue that algorithm executes no more than c * g(n) steps on every input of size n.
  • Big Omega: lower bound, best case, find one input on which algorithm executes at least c * g(n) steps.

Divide and Conquer

Tree

Priority Queue

Hashing

Sorting Algorithms

Stack and Queue

Monotonic Stack

Graphs

Dijkstra's Algorithm

Floyd Warshall's Algorithm

Minimum Spanning Tree

Disjoint Set

Greedy Algorithm

Dynamic Programming

Shorest Weight Path (Dijkstra Algorithm)

Bitmask and Bit Manipulation

Fenwick Tree (Binary Indexed Tree)

Trie

Linked List

Array

Backtracking

Math

Prefix Sum

Topological Sort

Two Pointers

Recursion

Top Questions from Microsoft

Neetcode.io

Arrays and Hashing

Binary Search

LinkedList

Sliding Window

Stack

Trees

Tries

Two Pointers

Heap and Priority Queue

Backtracking

Graphs

Advanced Graphs

1D Dynamic Programming

2D Dynamic Programming

Greedy

Intervals

Math and Geometry

Bits Manipulation

About

Notes from CSC236, 263, 373 and also LeetCode solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published