Git Product home page Git Product logo

competitive-programming's Introduction

Total Kattis Problems Solved : 20 -> 100

Total Leetcode Problems Solved : 33 -> 100

Leetcode Grind 75 by NUS CS senior Tay Yangshun :)

HackerRank Practice Java, C++, Algorithms

FAQ:

  • What are some useful features of java that you are allowed to use in CS2040s?
    • ArrayList(better than standard arrays), LinkedList, PriorityQueue, HashMap, HashSet that's about it I think
    • You will be implementing most of the data structures yourself
    • most of the linear data structures are available in java.util

Linear Data Structures:

  • Arrays
  • Lists (ArrayList/LinkedList)
  • Stack (Stack)
  • Queue (use the LinkedList class - O(1) enqueue and dequeue time)
  • Map (Either HashMap/HashSet)

Nonlinear Data Structures:

  • Binary Heap (PriorityQueue)
  • PriorityQueue (PriorityQueue)
  • UFDS (implement your own)
  • Tree (implement your own - typically has to be a balancing one),
  • Graphs (can represent them using Arrays for adjMatrix, List<List> for adjList and List<Triple> for edgeList)
  • TreeMap and TreeSet available but don't really need to use as much. (These are lifesavers for where you need map ordered by keys)

I think this covers 2040S DS portion For Algorithms I remember:

Linear:

  • Hashing Algorithm (just a brief overview)

Non-linear (Primarily for Graphs and Trees):

Traversal:

  • Breadth First Search [BFS]
  • Depth First Search + variations (inorder/preorder/postorder) [DFS]

MST:

  • Prim's
  • Kruskal's

Strongly Connected Components:

  • Kosaraju's

Single Source Shortest Path:

  • Bellman-Ford
  • Dijkstra (modified and non-modified)
  • BFS

All Pairs Shortest Path:

  • Floyd-Warshall
  • Dijkstra from every node

CS2040

competitive-programming's People

Contributors

shiva-karthick avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.