public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
		if (nums == null || nums.length == 0 || t < 0 || k < 1) {
			return false;
		}
		SortedSet<Long> set = new TreeSet<Long>();
		for (int i = 0; i < nums.length; i++) {
			int n = nums[i];
			SortedSet<Long> subSet = set.subSet((long) n - t, (long) n + t + 1);
			if (!subSet.isEmpty()) {
				return true;
			}

			if (i >= k) {
				set.remove((long) nums[i - k]);
			}
			set.add((long) n);
		}
		return false;
	}