/FrontEndCollection

Notes for Front-end Software Engineers. Covers common data structure and algorithms, basic web concepts, HTML & CSS & Javascript.

Primary LanguageJavaScript

FrontEndCollection (Keep updating everyday, hopefully...)

Web Development Basics

HTML 📖

1. What happens when you type in a URL
2. GET vs POST
3. What can we do to improve a website's performance?
4. HTML5 offline storage mechanism
5. Common time and space-complexity
6. What has been deprecated, and what is new on HTML5?
7. How the DOM really works?
8. Inline elements, Block elements, and what are the differences?
9. Several ways to call a function
10. A brief introduction of the differences between "src" and "href"
11. A brief introduction of Call, Apply, Bind
12. Time and space complexity for common sorting algorithm

CSS 💎

1. What is the difference between display:none and visibility:hidden style?
2. What is BFC(Block Formatting Context)

JavaScript Concepts 📦

this keyword
Bubbling and Capturing
Execution Context
Higher Order Function
Event Loop
Closures
Throttling and Debouncing
Promises

JavaScript Demos 🖥

Consuming Promises

React Concepts 💡

Controlled Components

React Projects (In ascending order of difficulty)

ExpenseTracker

Node.js Demos 🟢

Receive input

Projects

1. Accordion
2. ModalBox
3. Drum Kit
4. Mini Clock
5. Playing with Variables

Deep Dive in Javascript

Learn More on BFE.dev

1. Implement Curry()
2. implement Array.prototype.flat()
3. Implement curry() with placeholder support

Data Structures & Algorithms in JavaScript

Array

Easy

Two Sum
Two Sum II - Input Array Is Sorted
Search Insert Position
Squares of a Sorted Array
Move Zeros
Last and Second Last

Easy - Medium

Reverse Linked List
Rotate Array
Meeting Rooms II
Intersection of Two Arrays II
Remove Nth Node From End of List
K Closest Points to Origin Maximum Subarray
Best Time to Buy and Sell Stock
First Bad Version
Meeting Rooms

Medium

Container With Most Water
Trapping Rain Water
Product of Array Except Self
Merge Intervals
Longest Consecutive Sequence
Spiral Matrix
Coin Change
Gas Station
Top K Frequent Elements
3 Sum
Count Binary Substrings
Word Search
Subarray Sum Equals K
Subdomain Visit Count
Next Permutation
Expressive Words
Verifying an Alien Dictionary
4Sum(nSum universal solution)
3Sum Closest
Jump Game
Jump Game II
Minimum Size Subarray Sum
Matrix Summation
Counting Analogous Arrays
Custom Sorted Array
Reformat Date
Game of Life
Search a 2D Matrix II
Kth Largest Element in an Array
Insert Delete GetRandom O(1)
Reaching Points
Pow(x, n)
Sum of Square Numbers
Minimum Moves to Equal Array Elements Buying Show Tickets
Count Duplicate Elements
Password Creation

String

Reverse String
Reverse Words in a String III

⭐⭐

Longest Common Prefix
Valid Palindrome II

⭐⭐⭐

Longest Substring Without Repeating Characters
Letter Combinations of a Phone Number
Generate Parentheses
Decode String
Longest Palindromic Substring
Time Based Key-Value Store
Roman to Integer
Longest String Chain
Robot Bounded In Circle
Word Break
Minimum Number of Steps to Make Two Strings Anagram
Reorganize String
Group Anagrams
Shortest Word Distance II
Zigzag Conversion
Simplify Path
Search Suggestions System
Remove All Adjacent Duplicates in String II
Fraction to Recurring Decimal
Accounts Merge
Longest Happy String
Minimum Deletions to Make Character Frequencies Unique

Stack

Buildings With an Ocean View
Valid Parentheses
Minimum Remove to Make Valid Parentheses

Linked-List

Linked List Cycle
Middle of the Linked List

⭐⭐

Linked List Cycle II

⭐⭐⭐

Add Two Numbers
Design Linked List
LRU Cache

Tree

Binary Tree Preorder Traversal
Binary Tree Inorder Traversal

⭐⭐

Construct Binary Tree from Preorder and Inorder Traversal
Invert Binary Tree
Lowest Common Ancestor of a Binary Tree
Recover Binary Search Tree

⭐⭐⭐

Range Sum of BST
Binary Tree Vertical Order Traversal
Validate Binary Search Tree
Sum Root to Leaf Numbers
Binary Tree Right Side View

Recursion & Backtracking

Combinations

BFS & DFS

Flood Fill
Max Area of Island
Merge Two Binary Trees
Populating Next Right Pointers in Each Node
01 Matrix
Rotting Oranges
Number of Islands
Minimum Knight Moves

Binary Search

Binary Search
Find First and Last Position of Element in Sorted Array
Search in Rotated Sorted Array
Find Peak Element

Foundations of Algorithms

This is probably the hardest section in this repository, and totally optional, but why I am writting this....?

This section is based on CSE 551 (Foundations of Algorithms) from Arizona State University. I believe it will be good learning materials for frontend software engineers who did not receive a systematic CS education.

This section will NOT teach you about Frontend enginnering, but will cover the core about Computer Science and Algorithms.....

Basics of Algorithm Analysis
Divide and Conquer - Merge Sort
Graphs
Introduction to Stable Matching
Knowledge Check: Introduction to Stable Matching
Five Representative Problems
Greedy Algorithm - Interval Scheduling and Interval Partitioning
Amortized Analysis

Database Management

Unit 2 Exploring Databases and SQL
ER diagram, Relational Algebra, SQL / NOSQL
Unit 3: Data Storage
Unit 4: Data Indexing
Unit 5: Transactions and Recovery Unit 6: Concurrency
Unit 1 - 6 Practice Questions Solutions

TikTok 🎶

Count Analogous Array
Is this a tree
Longest String Chain
Fizz Buzz
Last and Second Last
Custom Sorted Array
Gas Station
Minimum Number of Steps to Make Two Strings Anagram
Count Binary Substrings
Anagram Difference
Counting Analogous Arrays
Reformat Date
Alaaddin Carpet
Reaching Points
OA with not answers


🤯 If you find errors in the content of this project, don't hesitate to submit issues or pull requests on GitHub for corrections, I really, really appreciate it

🤯如果你发现本项目有任何内容上的错误,欢迎在 GitHub 提交 issues 或者 pull requests 进行打脸