mg
BAN USERimport java.util.ArrayList;
import java.util.HashMap;
public class Question1
{
public ArrayList<String> getMatchingRanges(HashMap <String, ArrayList<String>> tags, String[] qTags)
{
if (qTags==null)
return null;
ArrayList<String> result = (ArrayList<String>) tags.get(qTags[0]).clone();
for(int i=1; i<qTags.length; i++)
{
ArrayList<String> newRes = new ArrayList<String>();
ArrayList<String> temp = tags.get(qTags[i]);
for(int j=0; j<temp.size();j++)
{
int newRange1 = Integer.parseInt(temp.get(j).split(":")[0]);
int newRange2 = Integer.parseInt(temp.get(j).split(":")[1]);
for(int k=0; k<result.size();k++)
{
int range1 = Integer.parseInt(result.get(k).split(":")[0]);
int range2 = Integer.parseInt(result.get(k).split(":")[1]);
if ((newRange1>=range1 && newRange1<=range2)
|| (newRange2>=range1 && newRange2<=range2))
{
String val = Math.max(range1,newRange1) + ":" + Math.min(range2,newRange2);
newRes.add(val);
}
}
}
result=newRes;
if (result.size()==0)
return null;
}
return result;
}
public static void main(String[] args)
{
HashMap <String,ArrayList<String>> tags = new HashMap <String,ArrayList<String>>();
ArrayList<String> zero = new ArrayList<String>();
zero.add("23:72");
zero.add("100:128");
ArrayList<String> one = new ArrayList<String>();
one.add("10:53");
tags.put("0",zero);
tags.put("1",one);
ArrayList<String> result = new Question1().getMatchingRanges(tags, new String[]{"0","1"});
if (result!=null)
{
for(String s : result)
System.out.println(s);
}
result = new Question1().getMatchingRanges(tags, new String[]{"0"});
if (result!=null)
{
for(String s : result)
System.out.println(s);
}
}
}
import java.util.ArrayList;
import java.util.Arrays;
public class Question1
{
public int nthSmallest(int[] nums, int n)
{
int[] indexes = new int[nums.length];
Arrays.fill(indexes,1);
int ret = 0;
for(int i=0; i<n; i++)
{
ret=chooseAndIncSmallest(indexes, nums);
System.out.print(ret + " ");
}
return ret;
}
public int chooseAndIncSmallest(int[] indexes, int[] nums)
{
int smallest = Integer.MAX_VALUE;
ArrayList<Integer> indx = new ArrayList<Integer>();
for(int i=0; i<indexes.length; i++)
{
if (nums[i]*indexes[i] < smallest)
{
smallest=nums[i]*indexes[i];
indx= new ArrayList<Integer>();
indx.add(i);
}
else if (nums[i]*indexes[i] == smallest)
{
indx.add(i);
}
}
for (int i=0; i<indx.size();i++)
indexes[indx.get(i)]++;
return smallest;
}
public static void main(String[] args)
{
System.out.println("\n"+new Question1().nthSmallest(new int[]{3,4,6},12));
}
}
- mg December 30, 2015