ycwmike
BAN USERpublic static float[] maxArray = {10,50,500,10000,1000000};
public static float[] taxValue = {8,7,6,5,4};
public float computeTexableAmount( float amount){
int index = indArrange(maxArray, 0, maxArray.length, amount);
foat tax = taxVlaue[index]/100;
float money = amount;
float taxMoney = 0.0;
for( int i = 0; i <= index; i++){
taxMoney += money * taxVale[index]/100;
money -= maxArray[i];
}
return taxMoney;
}
public int indArrange(float[] arr, int low, int high, float m){
if( low > high){
return low;
}
int midInd = (low+high)/2;
float middle = arr[(midInd];
if( middle == m){
return midInd;
}
if(m > middle){
return indArrang(arr,midInd+1, high, m);
}else{
return indArrang(arr,low, midInd-1,m);
}
}
public static void printAnagrams(String[] strArr, String target){
if(strArr == null){
System.out.println("Error");
}
for(int i = 0; i < strArr.length; i++){
if(isAnagram(strArr[i], target){
System.out.println( strArr[i] + "is Anagram of" + target)
}
}
}
private static boolean isAnagram(Sting str1, String tar){
if(str1.length() != tar.length() || str.equals(tar)){
return false;
}
int[] freq = new int[256];
for(int i = 0; i < str1.length(); i++){
int charInt = str.charAt(i);
freq[charInt]++;
}
for(int j = 0; j < tar.length(); j++){
int charInt2 = tar.charAt(j);
if(--freq[charInt2] < 0){
return false;
}
}
return true;
}
O(N^2) time O(N^2) space
Greedy alogirthm is enough....
- ycwmike December 02, 2014