Two Sum III - Data structure design
public class TwoSum {
/**
* @param number: An integer
* @return: nothing
*/
private int[] nums = new int[20000];
private int count = 0;
public void add(int number) {
nums[count++] = number;
for (int i = count - 1; i > 0; --i) {
if (nums[i - 1] <= nums[i]) break;
int tmp = nums[i - 1];
nums[i - 1] = nums[i];
nums[i] = tmp;
}
}
/**
* @param value: An integer
* @return: Find if there exists any pair of numbers which sum is equal to the value.
*/
public boolean find(int value) {
if (count < 2) return false;
int left = 0, right = count - 1;
while (left < right) {
int sum = nums[left] + nums[right];
if (sum == value) return true;
if (sum < value) {
++left;
} else {
--right;
}
}
return false;
}
}
最后更新于
这有帮助吗?