mulli2
BAN USERI used two indices, s and e after sorting. Time complexity is O(n * log n). Space complexity is O(1).
static void printSum(int[] arr, int K) {
Arrays.sort(arr);
int s = 0;
int e = arr.length - 1;
while (s < e) {
if (arr[s] + arr[e] == K) {
System.out.println(arr[s] + ", " + arr[e]);
s++;
} else if (arr[s] + arr[e] > K) {
e--;
} else {
s++;
}
}
}
static List<String> produceFromWildCard(String input) {
List<String> result = new LinkedList<String>();
produceFromWildCard(input, result);
return result;
}
static void produceFromWildCard(String input, List<String> result) {
int indexWild = input.indexOf('?');
if (indexWild < 0) {
result.add(input);
return;
}
produceFromWildCard(input.substring(0, indexWild) + "0"
+ input.substring(indexWild + 1), result);
produceFromWildCard(input.substring(0, indexWild) + "1"
+ input.substring(indexWild + 1), result);
}
- mulli2 May 09, 2015