> For the complete documentation index, see [llms.txt](https://kgisl.gitbook.io/lab3003/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kgisl.gitbook.io/lab3003/notes/fundaproblemset.md).

# Problem Set

What is an ideal problem set? Especially for someone who is learning Python as a first language? What set of problems will assess fundamental knowledge of computer science as well?

## Links

* <http://j.mp/pc2PythonHTML> and <http://bit.ly/pc2doc>
* [http://j.mp/programmingProblemSetForSoftwareEngineers](https://web.archive.org/web/20190314122918/https://www.shiftedup.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour)
* <http://j.mp/bigIdeasInProgramming>
* <http://bit.ly/pythonPathwaysKITE>

## FizzBuzz

## 2nd maximum value in an array

* <http://j.mp/getMaxCC>

## Remove Duplicates

## Reverse Dictionary

<http://j.mp/reverseDictionary>

## Tile Solver

* <http://j.mp/tileSolverCC>

## Bracket Validator

## Sorting

* Merging Lists
  * ```
    http://j.mp/unionListCC
    ```
* SelectSort implementation
* How to maintain a list of addresses in alphabetical order (best strategy)

## Efficient Fibonacci Series

## Maximum Subarray sum (TDD)

* equivalent of Python for <http://bit.ly/maxSubArraySumCC>

## Tree Traversal

* breadth first, depth first - which is better, and when?

## Graph Traversal

* Travelling Salesman problem, etc

## Dynamic Programming

<http://j.mp/ladderCD>
