Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets. Solution: Cascading Approach: Lets say, we have a set S={1,2,3,4}. Pick an element from set, ex. 4, now you have 2 sets – {[], [4]}. Now pick the second element from list ex. 3, now you […]

## Binary Left Shift << and Right Shift >>

Binary Left Shift << When shifting left, the most-significant bit is lost, and a 0 bit is inserted on the right end. Left shift is equivalent to multiplying the bit pattern by 2k (if we are shifting k bits). 10 << 2 = 10 * 22 = 10 * 4 = 40 10 << 3 = 10 […]

## .NET Big O Algorithm Complexity Cheat-Sheet

## Leetcode – 117. Populating Next Right Pointers in Each Node II

Given a binary tree struct Node { int val; Node *left; Node *right; Node *next; } Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL. Initially, all next pointers are set to NULL. Example: Input: {“$id”:”1″,”left”:{“$id”:”2″,”left”:{“$id”:”3″,”left”:null,”next”:null,”right”:null,”val”:4},”next”:null,”right”:{“$id”:”4″,”left”:null,”next”:null,”right”:null,”val”:5},”val”:2},”next”:null,”right”:{“$id”:”5″,”left”:null,”next”:null,”right”:{“$id”:”6″,”left”:null,”next”:null,”right”:null,”val”:7},”val”:3},”val”:1} Output: {“$id”:”1″,”left”:{“$id”:”2″,”left”:{“$id”:”3″,”left”:null,”next”:{“$id”:”4″,”left”:null,”next”:{“$id”:”5″,”left”:null,”next”:null,”right”:null,”val”:7},”right”:null,”val”:5},”right”:null,”val”:4},”next”:{“$id”:”6″,”left”:null,”next”:null,”right”:{“$ref”:”5″},”val”:3},”right”:{“$ref”:”4″},”val”:2},”next”:null,”right”:{“$ref”:”6″},”val”:1} Explanation: Given […]

## Leetcode – 968 – Binary Tree Cameras

Given a binary tree, we install cameras on the nodes of the tree. Each camera at a node can monitor its parent, itself, and its immediate children. Calculate the minimum number of cameras needed to monitor all nodes of the tree. Example 1: Input: [0,0,null,0,0] Output: 1 Explanation: One camera is enough to monitor all nodes if placed […]

## Leetcode 99 – Recover Binary Search Tree – Constant space

Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure with constant space. Example 1: Input: [1,3,null,null,2] 1 / 3 \ 2 Output: [3,1,null,null,2] 3 / 1 \ 2 Example 2: Input: [3,1,4,null,null,2] 3 / \ 1 4 […]

## Leetcode 685 – Redundant Connection II

In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) for which all other nodes are descendants of this node, plus every node has exactly one parent, except for the root node which has no parents. The given input is a directed graph that started as a rooted […]

## NextWEB: Designing GUI for Web 2.0

This paper was drafted in 2007, as a part of work in Web 2.0 Abstract Designing a web application with Rich graphics like drag-and-drop, dynamic field validation, transitioning from one screen to the other without page refreshes etc. was unimaginable till sometime ago. If you have used Gmail, Google spreadsheet, Flicker etc. you wonder – […]

## JWT prevents hot linking to your media

Imagine you have some media files published (static http(s) links) on your website for targeted customers, which have been very popular recently. Other sites (search engine) started finding links of your media and putting it on their websites or people started sharing your media links with others. Suddenly you see surge of download on your […]

## Configure Nginx as a web server and reverse proxy for Nodejs application on Azure Windows

Introduction: NodeJs applications are “Single threaded Event Loop” i.e there is a single thread listening to all incoming requests. On receiving a request, it immediately publish it to its internal “event queue” and is ready to receive the next request. It also polls event queue for any pending tasks and processes Non-blocking I/O tasks. For […]