Skip to content

Instantly share code, notes, and snippets.

@Jimexist
Jimexist / MultisetPermutations.java
Created September 7, 2013 10:13
MultisetPermutations
import java.util.*;
public class MultisetPermutations {
private MultisetPermutations() {
}
public static void main(String[] args) {
for (List<Integer> li : permutate(Arrays.asList(1, 1, 2, 2))) {
System.out.println(li);
}
@Jimexist
Jimexist / grey.py
Created September 8, 2013 08:04
Generate grey code
#!/usr/bin/env python
import sys
def toGrey(num):
return (num >> 1) ^ num
def generate(n):
for i in xrange(2**n):
yield toGrey(i)
@Jimexist
Jimexist / BinarySearch.java
Created September 8, 2013 13:32
BinarySearch
public class BinarySearch {
private BinarySearch() {
}
public static void main(String[] args) {
Integer[] data = {1,2,3,4,5,6,7,8,9};
for (int i=0; i<=10; ++i) {
System.out.println(String.format("%d: %d", i, binarySearch(data, i)));
}
@Jimexist
Jimexist / print_paren.c
Created March 23, 2014 03:55
generate paren
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#define MAX(A, B) ((A)>(B)?(A):(B))
static void print_paren(int n);
static void do_print(int n, int* idx, int k);
static void print_result(int n, int* idx);
@Jimexist
Jimexist / interleave.c
Created March 30, 2014 02:14
interleave two halves of an array
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
static void swap(int* data, int c) {
for (int i=0; c > 0; i+=2, --c) {
int tmp = data[i];
data[i] = data[i+1];
data[i+1] = tmp;
}
@Jimexist
Jimexist / LowerBound.java
Created March 30, 2014 02:49
Lower Bound
import java.util.*;
public class LowerBound {
private LowerBound() {}
final static class Node {
Node left, right;
final int val;
public Node(int val) {
@Jimexist
Jimexist / Zigzag.java
Created April 5, 2014 03:30
given an array of integer, returns the maximun length of zig-zag subsequence
public final class Zigzag {
private Zigzag() {}
/**
* given an array of integer, returns the maximun length of zig-zag
* subsequence
*/
public static int zigzagSequence(int[] arr) {
if (arr.length < 2) {
@Jimexist
Jimexist / guess.c
Created April 5, 2014 03:31
number guessing game
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
#define DUP (-1)
#define INVALID (-2)
static int comp(int a, int b, int c, int d) {
if (a == c) {
@Jimexist
Jimexist / KiloManX.java
Created June 8, 2014 08:56
KiloManX.java
import java.util.*;
/**
* SRM 181 Div 1 - 3rd
*/
public class KiloManX {
public static int leastShots(String[] damageChart, int[] bossHealth) {
final int size = bossHealth.length;
final int rows = 1 << size;
@Jimexist
Jimexist / Escape.java
Created June 8, 2014 08:58
Escape.java
import java.util.*;
public final class Escape {
private static final int size = 501;
private static final int NotSeen = -1;
private enum Type {
Normal, Harmful, Deadly
}