Skip to content

Instantly share code, notes, and snippets.

@deyindra
deyindra / RadomValueFromArrayBasedOnWeightAge
Last active March 22, 2016 19:26
RadomValueFromArrayBasedOnWeightAge
//smallest element greater than or equal to key
public static <T extends Comparable<T>> int findCeil(final T[] array, final T key){
int low=0;
int high = array.length-1;
while (low<high){
int mid = low + (high-low)/2;
if(key.compareTo(array[mid])>0){
low = mid+1;
}else{
high = mid;
@deyindra
deyindra / FindOddOne
Created March 26, 2016 03:28
Find the odd One
public int findOddOne(int[] array){
int xor = array[0];
for(int i=1;i<array.length;i++){
xor = xor ^ array[i];
}
return xor;
}
@deyindra
deyindra / FindOddMultiple
Created March 26, 2016 03:31
Find Multiple Odd
public Set<Integer> findOddMultiple(int[] array){
Set<Integer> oddSet = new HashSet<>();
for(int val:array){
boolean status = oddSet.add(val);
if(!status){
oddSet.remove(val);
}
}
return oddSet;
}
@deyindra
deyindra / Find Count
Created March 26, 2016 17:47
Find Count in 2 dimensional Matrix
public interface Predicate<T>{
boolean process(T object);
}
public static <T> int findCount(T[][] array, Predicate<T> predicate){
int count=0;
int row=0;
int col = array[0].length-1;
while (row<=array.length-1 && col>=0){
@deyindra
deyindra / AggregateFunction
Created March 31, 2016 07:08
TimeSeriesBasedStreamIterator
import java.util.PriorityQueue;
import java.util.function.Function;
public abstract class AggregateFunction<T extends Comparable<T>> implements Function<PriorityQueue<TimeSeriesType<T>>, T> {
@Override
public <V> Function<PriorityQueue<TimeSeriesType<T>>, V> andThen(Function<? super T, ? extends V> after) {
throw new UnsupportedOperationException("Not supported...");
}
@Override
public <V> Function<V, T> compose(Function<? super V, ? extends PriorityQueue<TimeSeriesType<T>>> before) {
@deyindra
deyindra / FloorAndCeil
Created April 3, 2016 05:58
Floor and Ceil Value in BST
public class TreeNode<E> {
private E data;
private TreeNode<E> left;
private TreeNode<E> right;
public TreeNode(E data) {
this.data = data;
}
public TreeNode<E> addLeft(TreeNode<E> left){
@deyindra
deyindra / MedianIterator
Created April 6, 2016 05:18
MedianIterator
import java.util.Collections;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.PriorityQueue;
public class MedianIterator<T extends Comparable<T>> implements Iterator<T>{
private int size;
private T[] array;
private T median;
private int currentIndex;
@deyindra
deyindra / StringPermutationCombination
Last active April 17, 2016 19:56
String Permutation and Combinarion
public static void generatePermutation(String str, final int index, final String prefix, List<String> list,
final char[] allChars, final char replaceAbleChar){
if(str.equals("")){
list.add(prefix);
}else{
char[] array = str.toCharArray();
if(array[index]!=replaceAbleChar){
generatePermutation(str.substring(index+1),0,prefix+array[index],list,allChars,replaceAbleChar);
}else{
@deyindra
deyindra / WorkBreak
Created April 19, 2016 18:44
Word Breaking
public static List<String> wordBreak(String str){
if(str==null){
throw new IllegalArgumentException("Invalid String");
}
List<String> wordList = new ArrayList<>();
String subString="";
boolean isQuoteFound=false;
for(char c:str.toCharArray()){
if(c!=' ' && c!='"'){
@deyindra
deyindra / PrimeNumberIterator
Created May 15, 2016 03:31
PrimeNumberIterator
package org.idey.algo.iterator.generic;
import java.util.BitSet;
import java.util.Iterator;
import java.util.NoSuchElementException;
public class PrimeNumberIterator implements Iterator<Integer>{
private int upperLimit;
private BitSet bitSet;
private int nextNumber;