Class Days and Class Times: Monday to Friday, 10:00 AM to 3:00 PM
Dates: June 1, 2020 (Monday) to June 30th, 2020 (Tuesday)
Lead Instructor: Daniel Zabari
Email: [email protected]
TA: Jonathan Pedoeem
Email: [email protected]
Slack Workspace: https://interviewprepbootcamp.slack.com
Office Hours: Wednesday and Friday 3:00 PM to 4:00 PM
- This README contains your assignments
- The
assignments
folder is where you will put your work when you submit a pull request to me. This is also where we will post solutions after the classwork/homework should have already been done.
Each assignment has the following format:
Date given: description. Due date. Assignment name.
The due date means before class on that date. So if a homework is due on 6/10, then it is due before 10:00 AM on 6/10.
For any assignment where we ask you to solve a problem, please submit your program to the github using the directions below under 'submitting HW'.
To get setup to submit homework, fork this repository.
Then do the following when you do homework:
- Pull from my repository to your fork. There will be files in the
correct location for the work to do that day. If you are submitting
homework due on 6/5 (not assigned 6/5), for example, which is the
1st day of the 2nd week of the bootcamp, then you would find the
file at
week2/day1/assignment-name
. In general, the path for a file isweek#/day#/assignment-name
. The same is true for submitting classwork we did on 6/5. You would look for the correct file underweek2/day1/assignment-name
. - Do the work.
- When you are ready to start comitting work to your fork, place your
work in the appropriate file, and change it. Unless I say otherwise,
you can submit your solutions as Javascript of C++ files. If you
need to change the file extension of the file, that is fine. Just
don't change the base name of the file. Example: you can change
implement-hash-table.cpp
toimplement-hash-table.js
but not tohash-tbl.cpp
. - Commit your changes, push them to your fork, and then submit a pull request from your fork against my repository.
If you are not able to solve the problem at home then post up a program containing the following:
As comments:
- a description of the approach(es) you thought of
- a description of where you got stuck on these approaches. For
example:
- Was there a flaw in the approach you found and you had to think of a new one? What was the flaw? How did you try to get around it?
- Were you just unable to implement the approach? Which part(s) were you unable to implement, and why?
As code:
- whatever part of a program you wrote if you wrote one
We prefer you submit something that runs, but sometimes we don't get that far. Whether it runs or not, just submit what you have.
Week 1 (06/01 -> 06/05)
06/01 (Mon): intro, setup, how to interview, p2p 1 question prep
06/02 (Tues): initial assessment, p2p 1
- hw: hashes, p2p 2 questions, lists pre-work
06/03 (Weds): big-o lecture, hashes
06/04 (Thurs): hashes day, p2p 2 06/05 (Fri): hashes
Week 2 (06/08 -> 06/12)
06/08 (Mon): hashes, p2p 3, for hw lists
06/09 (Tues): lists, stacks and queues pre work
06/10 (Weds): lists, stacks and queues. Hw: p2p 4 qu’s
06/11 (Thurs): stacks+queues
06/12 (Fri): p2p 4, stacks+queues, hw p2p 5 questions
Week 3 (06/15 -> 06/19)
06/15 (Mon): stacks+queues, trees
06/16 (Tues): p2p 5, trees, recursion pre work
06/17 (Weds): recursion, hw: p2p 6 questions due wed
06/18 (Thurs): recursion
06/19 (Fri): p2p 6, recursion, hw: p2p 7 questions
Week 4 (06/22 -> 06/26)
06/22 (Mon): recursion
06/23 (Tues): final assessment, p2p 7
06/24 p2p
06/25 p2p
06/26 p2p
Week 1, Day 1 (6/01)
- Intro Slides https://docs.google.com/presentation/d/11N-mmMHD8W4LhbYibOsjlTamRTDI1uHaj2_4oFD0hWQ/edit?usp=sharing
- Interview Prep Slides:
Week 1, Day 2 (6/2)
- Read "Design a Hash Table". https://leetcode.com/explore/learn/card/hash-table/182/practical-applications/
- Do "Design Hash Map" https://leetcode.com/explore/learn/card/hash-table/182/practical-applications/1140/.
implement-hash-map
.
Week 1, Day 3 (6/3)
Week 1, Day 4 (6/4)
Week 1, Day 5 (6/5)
- Lists Day 3 slides
- Remove duplicates from sorted array
- Merge sorted array
- Find first and last position of element in sorted array
- Stacks+queues day 1 slides
Week 2, Day 1 (6/8)
Week 2, Day 2 (6/9)
Week 2, Day 3 (6/10)
Week 2, Day 4 (6/11)
Week 2, Day 5 (6/12)
Week 4, Day 4 (1/23)
Grab-bag of problems! You can cast off on your own, or pick from the following problems
- https://leetcode.com/problems/island-perimeter
- https://leetcode.com/problems/keyboard-row/
- https://leetcode.com/problems/sort-characters-by-frequency/
- https://leetcode.com/problems/maximum-frequency-stack/
- https://leetcode.com/problems/max-points-on-a-line
- https://leetcode.com/problems/best-time-to-buy-and-sell-stock
- https://leetcode.com/problems/linked-list-cycle
- https://leetcode.com/problems/top-k-frequent-elements
- https://leetcode.com/problems/odd-even-linked-list
- https://leetcode.com/problems/permutations
- https://leetcode.com/problems/unique-paths/
- https://leetcode.com/problems/jump-game/
- https://leetcode.com/problems/delete-node-in-a-bst/
- https://leetcode.com/problems/invert-binary-tree
- https://leetcode.com/problems/cousins-in-binary-tree/
- https://leetcode.com/problems/palindrome-partitioning/
- https://leetcode.com/problems/longest-palindromic-substring/solution/
- https://leetcode.com/problems/longest-increasing-subsequence
Homework1
- p2p problems. Due 1/2. Remember to submit work 1/3, after p2p
finishes.
p2p-problem-1
p2p-problem-2
Please create a gist containing your solutions or attempt at designing solutions. At the top of your code, make a comment with your name, your group, and the two problem names. This will be the system starting Wednesday night, with p2p 3. Slack Elise your code by 7pm the night before you act as interviewer, so I can be sure you worked on the problems yourself.
Homework2
- p2p problems. Due 1/6. Remember to submit work 1/7, after p2p
finishes.
p2p-problem-1
p2p-problem-2
- Read intro material on hash tables here Due 1/6. Read up until the problem "design a hash set", and do not do it.
- Read the lists review packet, if you need a refresher on arrays, or linked lists. Due 1/9.
- Do Kth largest element in an
array.
Due 1/9.
kth-largest
.
Homework3
- Read solutions for p2p 2 problems. Due tk.
- Find an easy question on LC from the category for strings or arrays. Solve it, and write at least 3 edge cases to present to an interviewee and at least 2 hints to help an interviewee follow along with your solution to the problem. If you have trouble coming up with at least 3 edge cases and 2 hints by tonight, message me on slack with the link to your question, a summary of your algorithm, your edge cases, and your hints. We'll figure something out. Due tk.. Submit this in the same way we've asked you to [submit answers to p2p problems] Please create a gist containing your solutions or attempt at designing solutions. At the top of your code, make a comment with your name, your group, and the two problem names. This will be the system starting Wednesday night, with p2p 3. Slack Elise your code by 7pm the night before you act as interviewer, so I can be sure you worked on the problems yourself.
Homework4
- p2p problems for p2p 3. Due tk.
Please create a gist containing your solutions or attempt at designing solutions. At the top of your code, make a comment with your name, your group, and the two problem names. This will be the system starting Wednesday night, with p2p 3. Slack Elise your code by 7pm the night before you act as interviewer, so I can be sure you worked on the problems yourself.
p2p-problem-1
p2p-problem-2
Homework5
- Implement dutch national flag partitioning for a linked list, this is on Hacker Rank. You will receive an invite. Check your spam for the invite if you can't find it, and reach out to me or Elise! Due tk.
- Stacks+queues unit pre-reading https://drive.google.com/open?id=1MN29NToPCiKZy2_Sg_A7xuR2_BbKaIv-zXEGEkzpc6g. **Due tk **
- Stacks+queues unit intro question, "Implement Max Stack". This is on Hacker Rank. Due tk.
- Trees unit pre-reading. Review slides on trees, the representation as a data structure and many important definitions I will use in class. https://docs.google.com/presentation/d/1ONw1IU8wVmXGKuK6yUfPti6f2q9603CYQyCrjT7QQMk/edit?usp=sharing. Due tk.
Homework6
- Hacker Rank problem
braces
. You will recieve an invite. Due tk. - Backspace string
compare.
Due tk.
backspace-string-compare
.
Homework7
- p2p problems for p2p 4. You must do these problems and read the answers in the same night. Due tk.
Homework8
- p2p problems for p2p 5. Due tk.
- If you took a mock interview with a Bloomberg engineer today, please fill out this survey. If you haven't done so already. Due tk.
Homework9
- Read Recursion pre-work packet. Due tk.
- Finish these problems from class. Due tk.
Homework10
- p2p problems for p2p 6. Due tk.
Homework11
- Read solutions to p2p problems for p2p 6. Due tk.
- Spend 1 hour working on problems from either the Recursion Day 1 Slides or Recursion Day 2 slides. They are linked in the classwork section under the dates 1/20 and 1/21. Due tk.
Homework12
- p2p problems for p2p 7. Due tk.
- Find your own problem for p2p 7! You can pick any problem you want
from LeetCode. Solve it, write at least 3 edge cases and 2 hints to
present to an interviewee when they're trying to solve your
problem. If you have trouble coming
up with at least 3 edge cases and 2 hints by tonight, message me on
slack with all of the below items. We'll figure something out.
Due 1/23. Submit this as a gist to Elise. You don't have to
submit a pull request for this. Don't bite off more than you can
chew!
- the link to your question
- your program (if you have one)
- a summary of your algorithm
- your edge cases
- and your hints.