Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/atiq-cs/problemsolving

Problem solving from a few online judges such as codeforces, uva, spoj and coding practices from leetcode, hackerrank
https://github.com/atiq-cs/problemsolving

acm-icpc acm-uva algorithm c-sharp codeforces data-structures online-judges python3

Last synced: about 2 months ago
JSON representation

Problem solving from a few online judges such as codeforces, uva, spoj and coding practices from leetcode, hackerrank

Awesome Lists containing this project

README

        

### Documentation on Source Files
Example documentation of top of each source file looks like,

/***************************************************************************************************
* Title : Title or Name of the problem
* URL : Usually a problem number, for UVA it can just be a number
* Occasn: Occasion Contest or an event
* Date : Date the problem got accepted by judge
* Comp : Complexity, example, O(n), O(1) first one stands for time complexity and second one
* stands space complexity
* Status: Judge status by an online judge system i.e., Accepted, Wrong Answer, PresentationError
* Notes : Explanation, algorithm details
* ref : reference books/articles/links
* Ack : one or more persons who are acknowledged
* meta : tags of the problem prefixed with "tag-" i.e., tag-algo-dp, tag-two-pointers
***************************************************************************************************/

_More Info_
- meta which stands for meta-data, specifies what type of problem is it, categorizes the problem. For
example, `tag-algo-dp` stands for dynamic programming algorithmic problem. `tag-ds-bst` would mean
data structure: binary search tree problem.

### Searching on the Repository
To implement searching based on tags we added meta to each of the source file. During search have to
append `tag-` as prefix of the tag string. For example, to search on problems on linked-list: we
navigate to [this repo url](https://github.com/atiq-cs/Problem-Solving/) and enter following in the
search box: `tag-ds-linked-list`

Additionally, here are currently supported tags/classifications based on algorithm and data
structure,
* [Bit Manipulation](https://github.com/atiq-cs/Problem-Solving/search?q=tag-bit-manip)
* [Dynamic Programming](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-algo-dp)
* [Graph](https://github.com/atiq-cs/Problem-Solving/search?q=tag-graph)
* [LCS](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-dp-lcs)
* [LIS](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-dp-lis)
* [Linked List](https://github.com/atiq-cs/Problem-Solving/search?q=tag-ds-linked-list)
* [Priority Queue](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-priority-queue)
* [Recursion](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-recursion)
* [Sorting](https://github.com/atiq-cs/Problem-Solving/search?q=tag-algo-sort)
* [String](https://github.com/atiq-cs/Problem-Solving/search?q=tag-string)
* [Tree](https://github.com/atiq-cs/Problem-Solving/search?q=tag-graph-tree)

Binary Tree, Heap and related tags are,
* [Binary Search](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-algo-bsearch)
* [Binary Tree](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-ds-binary-tree)
* [Binary Search Tree](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-ds-bst)
* [Heap](https://github.com/atiq-cs/Problem-Solving/search?q=tag-ds-heap)

Graph algorithm tags,
* [Breadth First Search](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-graph-bfs)
* [Depth First Search](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-graph-dfs)
* [Dijkstra Algorithm](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-graph-dijkstra)

Permutation, combination related problems,
* [Next Permutation](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-next-permutation)

Company based domains,
* [Google](https://github.com/atiq-cs/Problem-Solving/search?q=tag-company-google)
* [Microsoft](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-company-microsoft)
* [Bloomberg](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-company-bloomberg)

Contest based tags,
* [ACM ICPC](https://github.com/atiq-cs/Problem-Solving/search?q=tag-acm-icpc)

Miscellaneous tags
* [Interviews, any company](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-interview)
* [Easy LeetCode Problems](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-leetcode-easy)
* [Medium LeetCode Problems](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-leetcode-medium)
* [Easy non-leetcode problems](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-easy)

Language Feature based,
* [lambda expression](https://github.com/atiq-cs/Problem-Solving/search?q=tag-lambda-exp)
* [LINQ](https://github.com/atiq-cs/Problem-Solving/search?q=tag-csharp-linq)

#### Tag Related Tips and Tricks,
Some notes,
- binary tree has tag-binary-tree and Binary Search Trees have `tag-ds-BST`
- Other tree problem has `tag-graph-tree`
- judges don't need te be tagged they are categorized by container directory names

### Problem Solving Repository Structure
#### Basics
Contains some basic idea and implementation.
For example,
* swap and overflow limit tests
* Sorting algorithms

#### Algorithms
Related with implementation of algorithms.

- Primary reference: [Introduction to Algorithms - C.L.R.S](
https://mitpress.mit.edu/books/introduction-algorithms-third-edition), 3rd Ed.
- Related tag: [algo-core](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-algo-core)

#### Data Structure
Reference: geeksforgeeks, wikipedia etc.
Related tag: [ds-core](
https://github.com/atiq-cs/Problem-Solving/search?q=tag-ds-core)

##### Binary Tree
There are comparative large number of binary tree problems and their applications. We gather
together all binary tree related problems here.

#### general-solving
leet-code, hackerrank, www.geeksforgeeks.org, lintcode etc

#### online-problem-solving
Following online judges are being covered,
* [Codeforces](http://codeforces.com/)
* [Sphere Online Judge](http://www.spoj.com/problems/)
* [Timus Online Judge](http://acm.timus.ru/problemset.aspx)
* [Saratov State University](http://acm.sgu.ru/problemset.php?show_volumes)
* [UVA Online Judge](https://uva.onlinejudge.org/)
* [topcoder](http://community.topcoder.com/tc?module=ProblemArchive)
* [Tianjin Univ Online Judge System](http://acm.tju.edu.cn/toj/problem.html)

#### coding-template
Currently, PSTool Powershell script is used to create templates for judges i.e., leetcode,
codeforces.

##### Problem Solving C++ Templates
For more info on coding templates please visit our [template wiki](
https://github.com/atiq-cs/Problem-Solving/wiki/Templates)

##### Note
Please do not abuse code from this repository. The Code provided in this
repository is for educational purpose. Sharing of ideas will enable hone our
coding and programing language specific skills and grow our knowledge on
algorithm related domains.