Competitive-Programming

所属分类:Leetcode/题库
开发工具:Java
文件大小:821KB
下载次数:0
上传日期:2020-07-14 19:01:58
上 传 者sh-1993
说明:  竞争性编程,竞争性编程实践
(Competitive-Programming,Competitive Programming Practices)

文件列表:
.idea (0, 2020-07-15)
.idea\codeStyles (0, 2020-07-15)
.idea\codeStyles\codeStyleConfig.xml (149, 2020-07-15)
.idea\misc.xml (359, 2020-07-15)
.idea\modules.xml (2231, 2020-07-15)
.idea\vcs.xml (167, 2020-07-15)
Codechef (0, 2020-07-15)
Codechef\Codechef.iml (423, 2020-07-15)
Codechef\beg (0, 2020-07-15)
Codechef\beg\.Guddu.java.swp (12288, 2020-07-15)
Codechef\beg\.SmallFactorials.java.swp (12288, 2020-07-15)
Codechef\beg\AddNumber.java (254, 2020-07-15)
Codechef\beg\Addfstnlst.java (452, 2020-07-15)
Codechef\beg\BankAtm.java (486, 2020-07-15)
Codechef\beg\BigIntegerFactorial.java (543, 2020-07-15)
Codechef\beg\EnormousInputTest.java (397, 2020-07-15)
Codechef\beg\FindRem.java (251, 2020-07-15)
Codechef\beg\LuckyFour.java (392, 2020-07-15)
Codechef\beg\ReverseNumber.java (409, 2020-07-15)
Codechef\beg\SecondLargest.java (611, 2020-07-15)
Codechef\beg\SmallFactorial.java (345, 2020-07-15)
Codechef\beg\SumofDigits.java (376, 2020-07-15)
Codechef\beg\TurboSort.java (303, 2020-07-15)
Codechef\contest (0, 2020-07-15)
Codechef\contest\2020 (0, 2020-07-15)
Codechef\contest\2020\2020.iml (427, 2020-07-15)
Codechef\contest\2020\janLong (0, 2020-07-15)
Codechef\contest\2020\janLong\brkbks.java (947, 2020-07-15)
Codechef\contest\AprilLong (0, 2020-07-15)
Codechef\contest\AprilLong\FriendorGirlfriend.java (380, 2020-07-15)
Codechef\contest\AprilLong\MaximumRemaining.java (301, 2020-07-15)
Codechef\contest\AprilLong\in() { (0, 2020-07-15)
Codechef\contest\AprilLong\maxrem.cpp (366, 2020-07-15)
Codechef\contest\IcL (0, 2020-07-15)
Codechef\contest\IcL\FlatLand.java (791, 2020-07-15)
Codechef\contest\IcL\candies.java (437, 2020-07-15)
Codechef\contest\Long (0, 2020-07-15)
... ...

![cp](https://user-images.githubusercontent.com/25124428/66685841-3680af80-ec9b-11e9-8c86-7044f30854b4.png) # Competitive-Programming Preparation _Ongoing Project_ This program developed to learn Algorithms for using in Competitive Prorgamming, **but can be used for:** - Competitive Programming - Practicing for Interviews - Improving Algorithmic Thinking - Practicing for College Class - FUN **The course requires:** - To know at least one programming language well. (_You have to be able to use the language efficiently._) - You have to be familiarize with some of the basic Data Structures (Array, Stack, Queue, etc.) (_Although if you don't know some of them, you may learn it when you come accross._) ###### _PS: I am saying "Any programming language" but in this course mostly we used Java and C++ some C. But still you can follow the curriculum without any knowledge of these languages_ ## Resources In this course we will use some tools for the questions. As I mentioned above all of these questions already exists, we just highlight them so that you can reach better. Here are the websites/tools that we use through this course: - [Leetcode](https://leetcode.com) - [Spoj](http://www.spoj.com) - [Hackerrank](https://www.hackerrank.com/domains) - [Topcoder](https://www.topcoder.com) - [Codeforces](http://codeforces.com) - [Lightoj](http://www.lightoj.com) - [ACM-Timus](http://acm.timus.ru) I gave these tools name because you may not be able to submit your solution or display the question for some websites. It would be better if you just sign up. Although it is not neccesary... ## Topics Here are the topics we included in this curriculum. ### DS - Stacks - Queues - Priority queue - Hashmap - Linked List - Trees - Heaps - Advanced Trees - Tries - Segment trees - Fenwick tree or Binary indexed trees - RMQ - SQRT Decomposition - Disjoint Data Structure - C++ STL (optional) ### Algo - Number Theory - Prime Numbers (Sieve of Eratosthenes) - GCD and LCM Euclid’s Algorithm - Modular Exponentiation - Long arithmetic (Multi, Add) - Efficient Prime Factorization - Combinatorics(Probability-Combinations-Permutations-Matrix..) - Computational geometry - Primitive Operations - Intuition - Polygon Inside, Outside - Implementing CCW - Immutable Point ADT - Convex Hull - Closest pair problem - Line intersection - Sorting - QuickSort - Counting Sort - Merge Sort - Searching - Binary Search - Ternary Search - Graph Theory - Depth First Search (DFS) - Breadth First Search (BFS) - Dijkstra’s Shortest Path - Minimum Spanning Tree - Ford Bellman - Floyd Warshall - LCA (Lowest Common Ancestor) - Max Flow / Min Cut - Dynamic programming - Knapsack - Matrix chain multiplication - Coin Change - Kadane - Longest increasing Subsequence (with RMQ) - Strings - Z algorithm - Suffix Trees/Arrays - Knuth-Morris-Pratt Algorithm (KMP) - Rabin-Karp Algorithm - Hash - Bit Manipulation - Game theory - Nim game - Grundy numbers - Sprague-Grundy theorem - **Optional Advanced Algorithms** - AVL Trees - Graph Coloring - Mo's Algorithm - Palindromic Tree - Heavy Light Decomposition - Dynamic Programming by Profile - Rod Cutting - Topological Sorting - DP with Bitmask - Dynamic Programming - Diobhantine Equation - Math - Flood Fill - Graph ## Here is our Curriculum |Week|Topics|Optional Topics| | --- | --- | --- | |[**1.Week**](#)|
  • Prime Numbers (Sieve of Eratosthenes)
  • Efficient Prime Factorization
  • Modular Exponentiation
    | |[**2.Week**](#)|
    • GCD and LCM Euclid’s Algorithm
    • Long arithmetic (Multi, Sum, Div, Sub)
    |
    • C++ STL:Vector
    • C++ STL:Pairs
    • C++ STL:Iterators
    | |[**3.Week**](#)|
    • QuickSort
    • Counting Sort
    |
    • C++ STL:String
    • C++ STL:Set
    • C++ STL:Map
    | |[**4.Week**](#)|
    • Merge Sort
    • Binary Search
    |
    • Ternary Search
    | |[**5.Week**](#)|
    • Queue (DS)
    • Stack (DS)
    • Breadth First Search
    • Depth First Search
    |
    • C++ STL: Queue
    • C++ STL: Stack
    | |[**6.Week**](#)|
    • Linked List (DS)
    • Dijkstra’s Shortest Path
    • Minimum Spanning Tree (MST)
    • Floyd Warshall
      | |[**7.Week**](#)|
      • Knapsack
      • Coin Change
      • Kadane
      | |[**8.Week**](#)|**Questions from previous topics**| |[**9.Week**](#)|
      • Trees (DS)
      • Segment Trees (DS)
      • Range Minimum Query (RMQ)
      • Lowest Common Ancestor (LCA)
      |
      • Topological Sorting
      | |[**10.Week**](#)|
      • Ford Bellman
      • Max Flow / Min Cut
      • Longest increasing Subsequence (with RMQ)
      |
      • Heavy Light Decomposition
      | |[**11.Week**](#)|
      • Primitive Operations
        • Intuition
        • Polygon Inside, Outside
        • Implementing CCW
        • Immutable Point ADT
      • Convex Hull
      • Closest pair problem
      • Line intersection
      | |[**12.Week**](#)|
      • Tries (DS)
      • Suffix Trees/Arrays (DS)
      • Knuth-Morris-Pratt Algorithm (KMP)
      • Rabin-Karp Algorithm
      | |[**13.Week**](#)|
      • Heaps (DS)
      • Priority queue (DS)
      • Combinatorics
      | |[**14.Week**](#)|
      • Z algorithm
      • Hash
      • Disjoint Data Structure (DS)
      | |[**15.Week**](#)|
      • Matrix chain multiplication
      • SQRT Decomposition (DS)
      |
      • Mo's Algorithm
      • Rod Cutting
      | |[**16.Week**](#)|**Questions from previous topics**| |[**17.Week**](#)|
      • Nim game
      • Grundy numbers
      | |[**18.Week**](#)|
      • Sprague-Grundy theorem
      • Fenwick tree or Binary indexed trees (DS)
      | |[**19.Week**](#)|
      • Bit Manipulation
      |
      • Palindromic Tree
      • AVL Trees
      | |[**20.Week**](#)|
      • Heavy Light Decomposition
      • Dynamic Programming by Profile
      |
      • Graph Coloring
      | ## Footsteps This repository contains examples of various algorithms written on different programming languages... ## Important Algorithms | Maths | C | CPP | Java | Python | |:----------------------------------------------------------------------------------------------- |:-------------------------------------:|:-------------------------------------:|:-------------------------------------:|:-------------------------------------:| | [Euclidean GCD](https://en.wikipedia.org/wiki/Euclidean_algorithm) | | | | | | [Fibonacci series](https://en.wikipedia.org/wiki/Fibonacci_number) | | | | | | [Pallindrome number](https://en.wikipedia.org/wiki/Palindromic_number) | | | | | | [Perfect number](https://en.wikipedia.org/wiki/Perfect_number) | | | | | | Searching and Sorting | C | CPP | Java | Python | |:----------------------------------------------------------------------------------------------- |:-------------------------------------:|:-------------------------------------:|:-------------------------------------:|:-------------------------------------:| | [QuickSort](https://en.wikipedia.org/wiki/Quicksort) | | | | | | [Merge Sort](https://en.wikipedia.org/wiki/Merge_sort) | | | | | | [Insertion Sort](https://en.wikipedia.org/wiki/Insertion_sort) | | | | | | [Counting Sort](https://en.wikipedia.org/wiki/Counting_sort) | | | | | | [Radix Sort](https://en.wikipedia.org/wiki/Radix_sort) | | | | | | [Bubble Sort](https://en.wikipedia.org/wiki/Bubble_sort) | | | | | | [Heap Sort](https://en.wikipedia.org/wiki/Heapsort) | | | | | | [Linear Search](https://en.wikipedia.org/wiki/Linear_search) | | | | | | [Binary Search](https://en.wikipedia.org/wiki/Binary_search_algorithm) | | | | | | Tree traversal | C | CPP | Java | Python | | --------------- | -----|------|------|---------------| | [Pre-Order Traversal](https://en.wikipedia.org/wiki/Tree_traversal) | | | | | | [Post-Order Traversal](https://en.wikipedia.org/wiki/Tree_traversal) | | | | | | [In-Order Traversal](https://en.wikipedia.org/wiki/Tree_traversal)| | | | | | [Binary Search Tree](https://en.wikipedia.org/wiki/Binary_search_tree) | | | | | | [Height of the Tree]() | | | | | | | [Depth of the Tree]() | | | | | | [AVL Tree](https://en.wikipedia.org/wiki/AVL_tree) | | | | | | [Spanning Tree](https://en.wikipedia.org/wiki/Spanning_tree) | | | | | | [Segment Tree](https://en.wikipedia.org/wiki/Segment_tree) | | | | | | [Fenwick Tree](https://en.wikipedia.org/wiki/Fenwick_tree) | | | | | | [Trie](https://en.wikipedia.org/wiki/Trie) | | | | | | Graph Traversal | C | CPP | Java | Python | | --------------- | -----|------|------|---------------| | [Breadth First Search](https://en.wikipedia.org/wiki/Breadth-first_search) | | | | | | [Depth First Search](https://en.wikipedia.org/wiki/Depth-first_search)| | | | | | [Topological Sort](https://en.wikipedia.org/wiki/Topological_sorting)| | | | | | [Kruskals Algorithms](https://en.wikipedia.org/wiki/Kruskal%27s_algorithm)| | | | | | [Prim's Algorithms](https://en.wikipedia.org/wiki/Prim%27s_algorithm)| | | | | | [Belmon Ford Algorithms](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm)| | | | | | [Floyd-Warshall Algorithm](https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm)| | | | | | [Dijkstra's Algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)| | | | | ## Curated resources ### Coding Practices * [Project Euler](https://projecteuler.net) * [LeetCode](https://leetcode.com/) * [InterviewBit](https://www.interviewbit.com/) * [Codility](https://codility.com/) * [HackerRank](https://www.hackerrank.com/) * [Project Euler](https://projecteuler.net/) * [Spoj](https://spoj.com/) * [Google Code Jam practice problems](https://code.google.com/codejam/contests.html) * [HackerEarth](https://www.hackerearth.com/) * [Top Coder](https://www.topcoder.com/) * [CodeChef](https://www.codechef.com/) * [Codewars](https://www.codewars.com/) * [CodeSignal](https://codesignal.com) * [CodeKata](http://codekata.com/) * [Firecode](https://www.firecode.io/) ### Video Lectures * Data Structures * [UC Berkeley Data Structures](https://www.youtube.com/watch?v=mFPmKGIrQs4&index=1&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd) * [MIT Advanced Data Structures](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1) * Algorithms * [MIT Introduction to Algorithms](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=1) * [MIT Advanced Algorithms](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c) ### Interview Books * [Competitive Programming 3 - Steven Halim & Felix Halim](https://www.amazon.com/Competitive-Programming-3rd-Steven-Halim/dp/B00FG8MNN8) * [Cracking The Coding Interview - Gayle Laakmann McDowell](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0***4782850/ref=sr_1_1?s=books&ie=UTF8) * [Cracking The PM Interview - Gayle Laakmann McDowell & Jackie Bavaro](https://www.amazon.com/Cracking-PM-Interview-Product-Technology-ebook/dp/B00ISYMUR6/ref=sr_1_1?s=books&ie=UTF8) * [Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/ref=sr_1_1?ie=UTF8&qid=1490295***9&sr=8-1&) ### Guides * [GeeksForGeeks – A CS portal for geeks](http://www.geeksforgeeks.org/) * [Learneroo – Algorithms](https://www.learneroo.com/subjects/8) * [Top Coder tutorials](http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static) * [Infoarena training path](http://www.infoarena.ro/training-path) (RO) * Steven & Felix Halim – [Increasing the Lower Bound of Programming Contests](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=118) (UVA Online Judge) ### Courses * MIT – [Hacking a Google Interview](https://courses.csail.mit.edu/iap/interview/materials.php) * [Coderust 2.0 ($$)](https://www.educative.io/collection/5***2554087309312/567***462145***656?authorName=Coderust) * [Interview Cake ($$$)](https://www.interviewcake.com/) [[review](https://www.quora.com/How-helpful-was-the-paid-program-from-Interview-Cake-in-your-interview-preparation)] * [How to Ace the Software Engineering Interview ($$)](https://interviewsteps.com/products/how-to-ace-the-software-engineering-interview) * [Grokking the System Design Interview ($$)](https://www.educative.io/collection/5668639101419520/5***9050225344512) ### Sites * [Coding for Interviews](http://codingforinterviews.com/) * [Career Cup](https://www.careercup.com/) * [HiredInTech](https://www.hiredintech.com/) * [Codela](https://www.codela.net/) * [TestDome](https://www.testdome.com/) * [FreeCodeCamp](https://www.freecodecamp.com/) *"Learn to code and help nonprofits"* * [Dynamic Programming Practice Problems](https://people.cs.clemson.edu/~bcdean/dp_practice/) ### Videos * [How to: Work at Google – Candidate Coaching Session for Technical Interviewing [45:45]](https://www.youtube.com/watch?v=oWbUtlUhwa8) * Gayle McDowell – [Cracking the Coding Interview [1:14:24]](https://www.youtube.com/watch?v=rEJzOhC5ZtQ) * Gayle McDowell - [Cracking the Coding Interview (examples) [9:05]](https://www.youtube.com/watch?v=aClxtDcdpsQ) * [Google Recruiters Share Technical Interview Tips [31:06]](https://www.youtube.com/watch?v=qc1owf2-220) * [Google Recruiters Share Non-Technical Interview Tips [28:23]](https://www.youtube.com/watch?v=DINxNbBOEoI) * Moishe Lettvin – [What I Learned Doing 250 Interviews at Google [1:00:24]](https://www.youtube.com/watch?v=r8RxkpUvxK0) * Sean Lee – [How to Get a Job at the Big 4 [42:34]](https://www.youtube.com/watch?v=YJZCUhxNCv8) * Ladies Storm Hackathons – [Interview Prep Round 1: Strings, Arrays, Linked Lists [1:12:39]](https://www.youtube.com/watch?v=fIpliB-ton8) * Randall Koutnik – [Rethinking the Developer Career Path [25:03]](https://www.youtube.com/watch?v=yIPbE7BssOs) ### System Design * [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer) * [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview) * This is a paid course but has several free previews such as [Designing Instagram](https://www.educative.io/courses/grokking-the-system-design-interview/m2yDVZnQ8lG) * [binhnguyennus/awesome-scalability](https://github.com/binhnguyennus/awesome-scalability) * Raph Levien – [Rope Science](https://github.com/google/xi-editor/blob/master/doc/rope_science/intro.md) * [Architecture of Open Source Applications](http://aosabook.org/en/index.html) * [How should I prepare system design questions for Google/Facebook interview?](http://www.quora.com/Job-Interviews/How-should-I-prepare-system-design-questions-for-Google-Facebook-Interview) * Jeff Atwood – [How Good an Estimator Are You?](http://blog.codinghorror.com/how-good-an-estimator-are-you/) * [0xAX/linux-insides](https://github.com/0xAX/linux-insides) ### Computer Science News * [Hacker News](https://news.ycombinator.com/) * [Lobsters](https://lobste.rs/) ### New to programming; follow these resources: * Codecademy * Freecodecamp * Progate * Cs50 by Harvard university ### Few learning websites: * udacity * Coursera - recommended courses - Algorithmic toolbox, java programming * Edx - CS50 , Mit introduction to programming with python * Datacamp ### Things to learn before you wanna grab a good companies: * [Git](https://githowto.com/) * Postman * Learn an Object oriented programming language - Java, c++, python etc * Learn DS, Algo * Learn Database and dbms concepts * Networking * Operating systems * Web Programming - CS50 web programming course by Harvard university * Learn basics of unix ### Github, projects and few use full links: * [Open Source CS](https://github.com/ForrestKnight/open-source-cs) * [A-Z Student Resouce ](https://github.com/dipakkr/A-to-Z-Resources-for-Students) * [Project based in C](https://github.com/rby9/project-based-tutorials-in-c) * [Fnplus](https://github.com/fnplus/community-project-ideas) * [Build your own X](https://github.com/danistefanovic/build-your-own-x) * [Project based Learning](https://github.com/tuvtran/project-based-learning) *[Awesome Beginners](https://github.com/MunGell/awesome-for-beginners) ## Contributing 1. Fork it! 2. Clone the forked repository to local system. 3. Create your feature branch: `git checkout -b my-new-feature` 4. Commit your changes: `git commit -am 'Add some ... ...

      近期下载者

      相关文件


      收藏者