Jimmy Shen bio photo

Jimmy Shen

Machine Learning Engineer and Software Engineer

Email Github

Software Engineering

Overview

Coding

My ‘Serious’ coding got started since I became a student as a Computer Science Major at the CUNY. Thanks for Dr. Siyu Liao’s help during my earlier programming life. Thanks for Professor Liang Huang to guide me to the Python world. I am actively participate in the Leetcode weekly contest and you can find my profile here.

Algorithm

Complexity

Sorting

Graph Algorithm

BFS/DFS

Dijkstra algorithm

Dijkstra and Floyd Warshall

SSSP and DP

topological sort

Bipartition

Cycle find problems

MST

SSSP(Single-Source Shortest Paths)

Minimum Weight Cycle in an Undirected Graph

Some relatively hard graph problems

Dynamic Programming

Summary

Classical and its variations

Find Recurrence in DP

1D DP

2D DP

3D DP

4D DP

Top Down DP and Bottom Up DP

States of the DP is the Key

DP programs on the grid

State machine DP

Range DP

DP look backwards

Digit DP

TSP

Bitmask DP

Bit Manipulation

Sting and bit manipulation

Priority Queue

Monotonic Stack/Queue

Two Pointers

Two Pointer and Monotonic Queue and Greedy

Slow and fast pointer

String problems

Union find

Segment Tree

Rolling hash

Binary Lifting Algorithm

Simulated annealing

Bit manipulation

Backtracking

Process simulation

Discuss by cases

Count on 1D/2D array

Power, Binary Exponentiation and Matrix Exponentiation

Minimum/maximum distance to points

Game theory

Stone Games

submatrix problems

-LeetCode 1727. Largest Submatrix With Rearrangements

Mixed algorithms

BFS and Dijkstra

DFS and pre/post order traversal and two pointer

2D range sum and DP and multi-source 0 1 bfs

Topological sort, cycle finding in directed graph and DFS

Topological sort and DP

Prefix sum and edge cases

Prefix sum and bit manipulation

Soft deletion and Monotonic Queue

DP and binary seach and monotonic queue

DFS and DP

Two pointers and linked list

Union Find and two pointer

Union Find, DFS/BFS

String problems by using C++

Limited Space problems

Arrays

Stack

Stack and binary tree

-stack and binary tree: LC 150 Evaluate Reverse Polish Notation

rectangle area

Geometric Problems

Interval Problems

Word search problems

Solve the problem backwards or reversely

Preprocess to speed up the computation

-LC 1761. Minimum Degree of a Connected Trio in a Graph

Data Structure

Data Structure Design

Heap

Multiset

Linked List

Binary Tree

Tree

Bit manipulation and Tree

Trie

Trie and Fast Walsh-Hadamard transform algorithm

Fenwick Tree or binary index tree

Red Black Tree

ODT(Old Driver Tree)

Soft deletion

Games

Greedy construction

Edge cases

Parentheses problems

Permutations and combinations

Prefix sum or prefix frequency sum

Meet in middle

Math

Random topics

My Mistakes

Garbage Collection

Source Code understanding

Linux Source Code

Kernel Programming

Operating system

Memory allocation

STL source code

Python tips

C++ STL

-STL Containers

C++ tips

Haskell

Rust

Git tips

Docker

Imporant times

Go language

Basic

Advanced

Top Coders and cool blogs

Hardwares

Edge devices

Tools

Vim

Real life problems