AsteroidXVI
BAN USERfor sql server:
SELECT TOP 2 e.Sal
FROM Employees e
WHERE
(e.City = 'DEL' or e.City = 'MUM')
order by e.Sal
;
other databases don't have TOP so you use limit after ordering by the respective attribute.
- AsteroidXVI December 20, 2013This solution, unless i'm misinterpreting the problem also works. and runs in O(n) time using an addition data struct (a hashset)
boolean checkProperWordIsoporphicMapping(String aa, String bb){
if(aa.lenght() != bb.lenght()) return false //incorrect word mapping, not same size
Character[] c = ArrayUtils.toObject(aa.toCharArray());
Character[] b = ArrayUtils.toObject(bb.toCharArray());
Hashset<Character> hs = new Hashset<Character>();
for(int i =0, j=0; i < c.size(); i++, j++){
if(hs.get(b[j]) && (a[i] != b[j]) return false;//if the char was mapped before and the new mapping char is a different letter, we have a problem
hs.add(b[j]);//add to hashset
}
return true; //runs in O(n)
}
This solution works for finding 1 or more than one missing number in the input array. Input doesn't have to be given sorted.
Running Time: O(n)
Space: Extra HashSet needed
public static void find_missing_number2(Integer[] v){
if(v.length < 1) {
System.out.println("No values provided in input integer");
System.out.println();
return;
}
System.out.println("The missing number(s) is/are: ");
HashSet<Integer> hs = new HashSet<Integer>();
for(int i : v)
hs.add(i);
int maxN = v[0];
int minN = v[0];
for(int i : v){
if(i > maxN) maxN = i;
if(i < minN) minN = i;
}
boolean missing = false;
for(int j = minN; j <= maxN; j++){
if(!(hs.contains(j))){
missing = true;
System.out.println(j);
}
}
if(!missing) System.out.println("There are no missing numbers in the input array");
System.out.println();
}
public static void main(String[] args){
//some rudimentary testing
Integer[] b = new Integer[0];
Integer[] vv = new Integer[]{5, 3, 2, 1};
Integer[] v = new Integer[]{2, 3, 5, 9};
Integer[] c = new Integer[]{0, 3, 2, 1};
find_missing_number2(b);
find_missing_number2(vv);
find_missing_number2(v);
find_missing_number2(c);
}
Output:
No values provided in input integer
The missing number(s) is/are:
4
The missing number(s) is/are:
4
6
7
8
The missing number(s) is/are:
There are no missing numbers in the input array
The solution above is correct, however, i've written it little more completely (in java as well) accounting for base cases, etc.
- AsteroidXVI December 20, 2013