{"id":16446918,"url":"https://github.com/lucas-erkana/algorithms","last_synced_at":"2025-09-30T01:31:31.253Z","repository":{"id":187727181,"uuid":"676193205","full_name":"Lucas-Erkana/Algorithms","owner":"Lucas-Erkana","description":"This is just a repo for practicing coding challenges","archived":false,"fork":false,"pushed_at":"2023-09-20T17:50:59.000Z","size":1853,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-17T03:42:25.426Z","etag":null,"topics":["coding-challenges","javascript","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lucas-Erkana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-08T16:29:28.000Z","updated_at":"2024-09-27T19:42:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"d5f12955-ec21-4fc8-926e-dd2d5245b0ac","html_url":"https://github.com/Lucas-Erkana/Algorithms","commit_stats":null,"previous_names":["lucas-erkana/algorithms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas-Erkana%2FAlgorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas-Erkana%2FAlgorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas-Erkana%2FAlgorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas-Erkana%2FAlgorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lucas-Erkana","download_url":"https://codeload.github.com/Lucas-Erkana/Algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234683508,"owners_count":18871273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding-challenges","javascript","ruby"],"created_at":"2024-10-11T09:49:12.712Z","updated_at":"2025-09-30T01:31:25.866Z","avatar_url":"https://github.com/Lucas-Erkana.png","language":"Ruby","readme":"# Succeeding at live coding challenges (algorithms \u0026 data structures)\n\n## Learning objectives\n\n- Solve simple interview-like coding challenges.\n- Demonstrate ability to deal with common issues during the live coding session part of a technical interview.\n- Provide feedback to a peer after a mock interview.\n\n### **Estimated time**: 2h\n\n## Description\n\nIn this lesson, you will practice your **live coding skills** focusing on one out of the following list of data structures and algorithms per round:\n\n- Data structure: Array\n- Data structure: String\n- Data structure: Linked List\n- Algorithm: Recursion\n- Algorithm: Sorting \u0026 Searching\n\n## Preparatory work\n\nIn order to do this exercise well you need to make sure you:\n\n- Have a good understanding of the fundamental data structures: arrays, strings and linked lists\n- Have a good understanding of the most important algorithms: recursion, sorting \u0026 searching\n- Have [GitHub Copilot](https://github.com/features/copilot) turned off\n\nTake a look at the following resources to refresh your mind!\n\n### Data structures\n\nData structures are the **building blocks of applications**. They allow us to **most efficiently store data** in order to create fast and cheap algorithms.\n\n- [What is a Data Structure?](https://www.simplilearn.com/tutorials/data-structure-tutorial/what-is-data-structure)\n\n#### Data structure: Array\n\nAn `array` is a data structure that **collects elements of the same data type** and **stores them in contiguous** memory locations.\n\n- [Definition of Array](https://www.youtube.com/watch?v=55l-aZ7_F24)\n- [Array cheatsheet](https://www.techinterviewhandbook.org/algorithms/array/)\n\n#### Data structure: String\n\nA `string` (or string literal) is an **array of characters** (i.e. any combination of numbers, letters, symbols).\n\n- [Basics of String Literals](https://www.youtube.com/watch?v=IlqiTmcK1Eg)\n- [String cheatsheet](https://www.techinterviewhandbook.org/algorithms/string/)\n\n#### Data structure: Linked List\n\nA `Linked List` is a user-defined data structure that consists of **nodes** that point to either in one direction (singly Linked List) or both directions (doubly Linked List).\n\n- [Introduction to Linked List](https://www.youtube.com/watch?v=R9PTBwOzceo)\n- [Linked Lists for Technical Interviews](https://www.youtube.com/watch?v=Hj_rA0dhr2I)\n- [Linked list cheatsheet](https://www.techinterviewhandbook.org/algorithms/linked-list/)\n\n### Algorithms\n\nAn algorithm is a **set of instructions** that (when executed in order)** solves a computational problem**.\n\n- [What is an Algorithm?](https://www.youtube.com/watch?v=vVYG8TNN7hg)\n\n#### Algorithm technique: Recursion\n\nWhile technically not an algorithm, recursion is an algorithm technique used to help break down an algorithm into a `base case` and `recursive cases`. While these algorithms can also be implemented using loops, they tend to be more readable. \n\n- [Recursion cheatsheet](https://www.techinterviewhandbook.org/algorithms/recursion/)\n- [Recursion - FreeCodeCamp](https://www.youtube.com/watch?v=IJDJ0kBx2LM)\n\n#### Algorithm: Sorting and searching\n\nSorting and searching are two fundamental operations that are performed on most data structures. Sorting serves to **order elements** in a particular way, while searching deals with **finding the desired element in a particular data structure**.\n\nThere are various strategies (in other words, algorithms) to implement sorting and searching that you have to know.\n\n- [Sorting and searching cheatsheet](https://www.techinterviewhandbook.org/algorithms/sorting-searching/)\n- [Understanding sorting algorithms - FreeCodeCamp](https://www.youtube.com/watch?v=l7-f9gS8VOs)\n- [Searching and Sorting - MIT lecture](https://www.youtube.com/watch?v=6LOwPhPDwVc)\n\n## Exercise\n\n\u003e 💡 Please make use of the [following rubric](https://docs.google.com/document/d/18oP47pnzkLsy01T6220CvaxQhbhh061XmC8tTqVkYOQ) while you go through the exercise.\n\nThe best way to improve your live coding skill is to practice often. When better than in a mock interview? Together with a peer you are instructed to **choose one data structure to focus on** and then solve the challenge **using our recommended 4 step approach**. Select one person and follow the instructions:\n\n1. Choose a data structure or algorithm to focus on\n      [Add two numbers](https://github.com/Lucas-Erkana/Algorithms/tree/main/Add%20Two%20Numbers)\n      [Add Binary](https://github.com/Lucas-Erkana/Algorithms/tree/main/Add%20binary)\n      [Award Budget Cuts](https://github.com/Lucas-Erkana/Algorithms/tree/main/Award%20Budget%20Cuts)\n      [Basic Calculator IV](https://github.com/Lucas-Erkana/Algorithms/tree/main/Basic%20Calculator%20IV)\n      [Remove Duplicates from Sorted Array](https://github.com/Lucas-Erkana/Algorithms/tree/main/Remove%20Duplicates%20from%20Sorted%20Array)\n      \n2. Pick 1 **easy** coding challenge from the list\n3. Solve the challenge using our **recommended approach** - **(25 min total)**\n   - 💡 Understand - Make sure that you understand what the inputs and outputs should be, as well as potential edge cases - **(5 min)**\n   - 🗺 Plan - Create a plan of action (in pseudocode) - **(5 min)**\n   - 💬 Report - Communicate what you are doing while you're solving the problem - **(10 min)**\n   - 🤔 Reflect- Analyze the algorithm and (1) share its efficiency using Big O and/or (2) propose how you could've solved it differently - **(5 min)**\n4. Interview gives feedback on structure and content - **(5 min)**\n5. _Switch roles and repeat for 2 times total per person_\n\n⏰ **Time**: 30 minutes per person per round\n\n**Guiding questions:**\n\n- Does this challenge match any patterns you've seen before?\n- Are there any well-known algorithms (i.e. recursion or sorting) you can use?\n\n---\n\n_If you spot any bugs or issues in this activity, you can [open an issue with your proposed change](https://github.com/microverseinc/curriculum-transversal-skills/blob/main/git-github/articles/open_issue.md)._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas-erkana%2Falgorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucas-erkana%2Falgorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas-erkana%2Falgorithms/lists"}