GithubHelp home page GithubHelp logo

pushp360 / leetcode-patterns Goto Github PK

View Code? Open in Web Editor NEW

This project forked from seanprashad/leetcode-patterns

1.0 0.0 0.0 11.54 MB

A curated list of leetcode questions grouped by their common patterns

Home Page: https://seanprashad.com/leetcode-patterns/

License: GNU General Public License v3.0

JavaScript 96.99% HTML 0.74% SCSS 2.27%

leetcode-patterns's Introduction

Leetcode Patterns

Table of Contents

Background

This repo is intended for any individual wanting to improve their problem solving skills for software engineering interviews.

Problems are grouped under their respective subtopic, in order to focus on repeatedly applying common patterns rather than randomly tackling questions.

All questions are available on leetcode.com with some requiring leetcode premium.

Preface

It is highly recommended to read chapters 1, 2, 3, 4, 8, and 10 of Cracking The Coding Interview to familiarize yourself with the following data structures and their operations:

  • Arrays
  • Maps
  • Linked Lists
  • Queues
  • Heaps
  • Stacks
  • Trees
  • Graphs

In addition, you should have a good grasp on common algorithms such as:

  • Breadth-first search
  • Depth-first search
  • Binary search
  • Recursion

Notes

This pdf contains useful information for the built-in data structures in Java.

Other useful methods to know include substring(), toCharArray(), Math.max(), Math.min(), and Arrays.fill().

Question List

The entire question list can be found here: https://seanprashad.com/leetcode-patterns/.

In addition to viewing the question list, companies that have previously asked the question in the past 6 months (as of May 2021) will be listed. You can also use the checkboxes to mark which questions you've completed!

Solutions

Solutions written in Java can be found in the solutions branch.

Leetcode Discuss

Leetcode discuss is an amazing resource and features previous interview questions, as well as compensation and general career advice.

Tips to Consider

If input array is sorted then
    - Binary search
    - Two pointers

If asked for all permutations/subsets then
    - Backtracking

If given a tree then
    - DFS
    - BFS

If given a graph then
    - DFS
    - BFS

If given a linked list then
    - Two pointers

If recursion is banned then
    - Stack

If must solve in-place then
    - Swap corresponding values
    - Store one or more different values in the same pointer

If asked for maximum/minimum subarray/subset/options then
    - Dynamic programming

If asked for top/least K items then
    - Heap

If asked for common strings then
    - Map
    - Trie

Else
    - Map/Set for O(1) time & O(n) space
    - Sort input for O(nlogn) time and O(1) space

Suggestions

Think a question should/shouldn't be included? Wish there was another feature? Feel free to open an issue with your suggestion!

Acknowledgements

This list is heavily inspired from Grokking the Coding Interview with additional problems extracted from the Blind 75 list and this hackernoon article on 14 patterns to ace any coding interview question.

leetcode-patterns's People

Contributors

arnavpuri avatar ddisqq avatar dependabot[bot] avatar edward-noe avatar gssakash avatar hiromik avatar ishelar avatar juhitiwari avatar mm1705 avatar nishantagrawal01 avatar omarfos avatar pavansoundara avatar philiplee13 avatar seanprashad avatar shreyshreyansh avatar stevenlay avatar steviekong avatar td31 avatar thetkpark avatar timurhamitov avatar

Stargazers

 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.