Skip to content

Instantly share code, notes, and snippets.

@aniruddha84
aniruddha84 / zigzag.java
Created October 25, 2020 19:02
ZigZag printer
public class ZigZag{
public static void main(String []args){
String str = "thisisazigzag";
System.out.println(str);
printZigZag(str, 4);
}
public static void printZigZag(String input, int levels) {
@aniruddha84
aniruddha84 / permutations.java
Created January 31, 2018 01:03
Integer array Permutations
class Solution {
public List<List<Integer>> permute(int[] nums) {
return permute(nums, 0, nums.length - 1);
}
private List<List<Integer>> permute(int[] nums, int low, int high) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
if (low == high) {
ArrayList<Integer> temp = new ArrayList<Integer>();
temp.add(nums[low]);
@aniruddha84
aniruddha84 / max-area-island-matrix.java
Last active January 19, 2018 17:48
Find max area island in Matrix
class Solution {
public int maxAreaOfIsland(int[][] matrix) {
int rows = matrix.length;
int cols = matrix[0].length;
// return if empty matrix
if (cols == 0) return 0;
int[][] visited = new int[rows][cols];
int maxArea = 0;
@aniruddha84
aniruddha84 / nth-fibonacci-num.java
Created January 17, 2018 21:06
Nth Fibonacci number
public int nfibonacci(int n) {
if (n == 1 || n == 2) return 1;
if (n < 1) throw new RuntimeException("Invalid parameter. n must be greater than 0");
int i = 1;
int j = 1;
int result = 0;
for(int k = 3; k <= n; k++) {
result = i + j;
j = i;
i = result;
@aniruddha84
aniruddha84 / reshape-matrix.java
Created January 17, 2018 18:13
Reshape Matrix
class Solution {
public int[][] reshapeMatrix(int[][] matrix, int r, int c) {
int rows = matrix.length;
int cols = matrix[0].length;
if ((rows * cols) != (r * c)) throw new RuntimeException("Invalid operation");
int[][] resultMatrix = new int[r][c];
int resultRow = 0;
int resultCol = 0;
@aniruddha84
aniruddha84 / merge-sorted-arr.java
Created January 17, 2018 17:44
Merge Sorted Array
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i = m-1;
int j = n-1;
int k = nums1.length - 1;
while(i >= 0 && j >= 0) {
if (nums1[i] > nums2[j]) {
nums1[k] = nums1[i];
i -= 1;
k -= 1;
@aniruddha84
aniruddha84 / remove-dups-sorted-arr.java
Last active January 15, 2018 22:34
Remove duplicates from Sorted Array
// https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/
public void removeDuplicates(int[] arr) {
if (arr.length <= 1) return arr.length;
int p1 = 1;
for(int i = 1; i < arr.length; i++) {
if (arr[i] != arr[i-1]) {
arr[p1] = arr[i];
p1 += 1;
}
}
@aniruddha84
aniruddha84 / game_of_life.rb
Created May 7, 2016 18:26
Conway's Game of life
# @param {Integer[][]} board
# @return {Void} Do not return anything, modify board in-place instead.
def game_of_life(board)
m = board.size
n = board[0].size
meta_data = {}
(0...m).each do |row|
(0...n).each do |col|
living_neighbours = live_neighbours(board, row, col)
# meta-data format -> [row:col] => [old_value, num_of_live_neighbours]
@aniruddha84
aniruddha84 / longest_nonrepeating_substring.rb
Last active May 7, 2016 18:07
Longest non-repeating substring
def longest_nonrepeating_substring(str)
max_len = 0
look_up = {}
len = 0
last_repeating_index = 0 # indicates beginning of unique string
(0...str.size).each do |index|
if (p = look_up[str[index]]) # repeat char found at index
if p > last_repeating_index
len = index - p
last_repeating_index = p
@aniruddha84
aniruddha84 / sub_set_sum.rb
Last active April 6, 2016 22:55
Given an input array and target sum, find all possible ways the elements of the array can be added upto get target
# Given an input array and target sum, find all possible ways the elements of the array can be added upto get target
# sub_set_sum([10, 7, 5, 18, 12, 20, 15], 35) => [
# [10, 7, 18],
# [10, 5, 20]
# [5, 18, 12],
# [20, 15]
# ]
require 'set'
def subset_sum(arr, sum, curr_arr = [], result = Set.new)
return if arr.nil?