Skip to content

Instantly share code, notes, and snippets.

@deyindra
deyindra / SumNumbersDivisibleByN1OrN2
Created January 20, 2016 05:05
Given 3 postive number n1, n2 and n3 where n2 and n3 always less than n1 find the sum of all numbers till n1 which are divisible by n2 and n3
public static int findGCD(int a, int b){
if(a==0)
return b;
return findGCD(b%a,a);
}
public static int findLCM(int a, int b){
return a*b/findGCD(a,b);
}
@deyindra
deyindra / Prime Table
Last active August 8, 2018 05:28
Generate Prime table
package org.idey.algo.math;
import java.util.BitSet;
public class PrimeNumber {
private BitSet bitSet;
private int upperLimit;
public PrimeNumber(int upperLimit) {
this.upperLimit = upperLimit+1;
@deyindra
deyindra / BreadthFirstIterator
Created January 29, 2016 23:52
BFS and DFS Iterator for Graph
import java.util.*;
public class BreadthFirstIterator<T> implements Iterator<T> {
private Set<T> visited = new HashSet<>();
private Queue<T> queue = new LinkedList<>();
private Graph<T> graph;
public BreadthFirstIterator(Graph<T> g, T startingVertex) {
if(g.isVertexExist(startingVertex)) {
this.graph = g;
@deyindra
deyindra / BinaryStringGenerator
Created February 1, 2016 03:23
Binary String Generator for 32 Bit positive Integer
import java.util.Iterator;
import java.util.NoSuchElementException;
public class BinaryNumberGeneratorIterator implements Iterator<String> {
private final int size;
private final int bit;
private int currentBitPostion;
public BinaryNumberGeneratorIterator(int bit) {
assert(bit<=31);
@deyindra
deyindra / Singleton
Created February 14, 2016 21:11
Singleton Deserialization
import java.io.*;
public class Singleton implements Serializable {
private static volatile Singleton object;
private Singleton() {
}
public static Singleton getInstance() {
@deyindra
deyindra / Range.java
Created February 24, 2016 05:31
Given a array of Objects and Array of Range group all the objects with Appropriate Range
public class Range<T extends Comparable<T>> implements Comparable<Range<T>> {
private T lower;
private T upper;
public Range(T lower, T upper) {
assert(lower!=null && upper!=null && upper.compareTo(lower)>0);
this.lower = lower;
this.upper = upper;
}
//Asummption they are no overlapping
@deyindra
deyindra / Non Tail Recurrsive
Created March 5, 2016 18:10
Finding Nth Fibonacci
public static int findingNthFibo(int n, int start, int end){
if(n==1){
return start;
}else if (n==2){
return end;
}else{
return findingNthFibo(n-1,start,end)+findingNthFibo(n-2, start,end);
}
}
@deyindra
deyindra / Tail Recursive
Created March 5, 2016 18:18
Finding Nth Fibonacci Tail Recursive way
public int tailRecursiveFibonacii(int n, int end, int start){
return n==1 ? start :tailRecursiveFibonacii(n-1,end+start,end);
}
@deyindra
deyindra / FibonacciIterator
Created March 15, 2016 15:28
FibonacciIterator
public class FibonacciIterator implements Iterator<Integer>{
private Integer start;
private Integer end;
private int number;
private Integer upperLimit;
private Integer nextNumber;
public FibonacciIterator(Integer start, Integer end, Integer upperLimit) {
if(start<=end && end<=upperLimit){
@deyindra
deyindra / IntersectingIterator
Created March 18, 2016 15:53
IntersectingIterator
package org.idey.algo.iterator;
import java.util.*;
/**
* This class return common intersection elements from N Iterator with Sorted Elements
* @param <T>
*/
public class IntersectionIterator<T extends Comparable<T>> implements Iterator<T>{
private Iterator<T>[] iterators;