Implementing Registry Design Pattern in Python

What is Registry Pattern?
Registry should be understood as a global object that maintains track of instances. This global is usually a dictionary or an associate array with the keys being the identifiers for the values stored in the dictionary.

LeetCode - Longest Substring Without Repeating Characters - O(n) - Java

Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3 
Explanation: The answer is "abc", with the length of 3. 
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3. 
             Note that the answer must be a substring, "pwke" is a subsequence and not a substring


LeetCode - Two Sum O(n) Solution in Java


[Original Link]

Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].


The idea is to maintain a hash map to store the elements that you have seen as we iterate over the array. For every number we try to see if we have a complement i.e (target-current no) in our hash map. If we find the number in our hash map, we have our answer.

Space Complexity: O(n)
Time Complexity: O(n)

Must do questions for software engineering interviews - LeetCode

These questions are in no particular order. Every question will give you enough exposure to strategies and techniques required to solve most of the problem solving & data structures related questions in the interviews.

Some of the techniques used in these problems are two pointers, invariant windows, binary search, DFS/BFS, recursion, interval scheduling related, simple DP and bit manipulation, heaps, data structure design etc.

  1. Two Sum
  2. 3Sum
  3. Combination Sum
  4. Minimum Window Substring
  5. Maximum Subarray
  6. Longest substring without repeating characters
  7. Longest Palindromic Substring
  8. Longest repeating character replacement
  9. Search in a rotated sorted array
  10. Maximum Subarray
  11. Spiral Matrix
  12. Rotate Image
  13. Container with most Water
  14. Best Time to Buy and Sell Stock
  15. Remove Nth Node from end of a list
  16. Maximum Product Subarray
  17. Reverse LinkedList
  18. Product of Array Except Self
  19. Find minimum in rotated sorted array
  20. Valid Parenthesis
  21. Merge two sorted lists
  22. Merge K sorted lists
  23. Group Anagrams
  24. Merge Intervals
  25. Meeting Rooms
  26. Meeting Rooms ||
  27. Minimum Number of arrows to burst balloons
  28. Insert Interval
  29. Unique Paths
  30. Jump Game
  31. Climbing Stairs
  32. Set Matrix Zeros
  33. Word Search
  34. Word Search ||
  35. Validate Binary Search Tree
  36. Binary Tree Level Order Traversal
  37. Maximum Depth of a Binary Tree
  38. Binary Tree from Preorder and Inorder traversals
  39. Binary Tree Maximum Path Sum
  40. Invert Binary Tree
  41. Kth Smallest Element in a BST
  42. Lowest Common Ancestor in a BST
  43. Serialize and deserialize binary tree
  44. Subtree of Another Tree
  45. Number of connected components in an undirected graph
  46. Clone Graph
  47. Valid Palindrome
  48. Longest Consecutive Sequence
  49. Word Break
  50. Decode Ways
  51. Linked List Cycle
  52. Reorder List
  53. Reverse Bits
  54. Number of 1 Bits
  55. House Robber
  56. House Robber ||
  57. Number of Islands
  58. Implement Trie
  59. Add and Search Word - DS Design
  60. Contains Duplicate
  61. Course Schedule
  62. Valid Anagram
  63. Group Valid Tree
  64. Missing Number
  65. Alien Dictionary
  66. Encode And Deode Strings
  67. Find Median from data stream
  68. Longest Increasing Subsequence
  69. Coin Change
  70. Counting Bits
  71. Top K frequent elements
  72. Sum of Two Integers
  73. Pacific Atlantic Water flow
  74. Non Overlapping Intervals