Update BinarySearchTest.java

master
wangsiyuan 2024-07-11 10:41:43 +08:00
parent 6ca0b464a8
commit 4b6f4dc631
1 changed files with 15 additions and 5 deletions

View File

@ -97,18 +97,18 @@ public class BinarySearchTest {
int result = Arrays.binarySearch(nums, target);
if (result < 0) {
int insertIndex = Math.abs(result + 1);
System.out.printf("nums: " + Arrays.toString(nums) + "\n");
System.out.printf("insertIndex: " + insertIndex + "\n");
System.out.println("nums: " + Arrays.toString(nums));
System.out.println("insertIndex: " + insertIndex);
int[] newNums = new int[nums.length + 1];
//第一次拷贝
System.arraycopy(nums, 0, newNums, 0, nums.length);
System.out.printf("newNums: " + Arrays.toString(newNums) + "\n");
System.out.println("newNums: " + Arrays.toString(newNums));
newNums[insertIndex] = target;
// 第二次拷贝
System.arraycopy(nums, insertIndex, newNums, insertIndex + 1, nums.length - insertIndex);
System.out.printf("newNums: " + Arrays.toString(newNums) + "\n");
System.out.println("newNums: " + Arrays.toString(newNums));
}
System.out.printf("result: " + result);
System.out.println("result: " + result);
assertEquals(-3, result, "The target should not be found");
}
@ -126,4 +126,14 @@ public class BinarySearchTest {
assertEquals(2, BinarySearch.binarySearchRightMost(nums, 3));
assertEquals(7, BinarySearch.binarySearchRightMost(nums, 5));
}
@Test
public void testSearchRange() {
int[] nums = {5, 7, 7, 8, 8, 10};
int[] nums1 = {1};
assertArrayEquals(new int[]{1,2}, BinarySearch.searchRange(nums, 7), "The result should be [1, 2]" );
assertArrayEquals(new int[]{3,4}, BinarySearch.searchRange(nums, 8), "The result should be [3, 4]" );
assertArrayEquals(new int[]{-1, -1}, BinarySearch.searchRange(nums, 6), "The result should be [-1, -1]");
assertArrayEquals(new int[]{0, 0}, BinarySearch.searchRange(nums1, 1), "The result should be [0, 0]");
}
}