4、下列哪些是合法的标识符(对于错误的,给出错误原因) A. moon-sun B.int_long C.byte D.$Boy26 5、下面三行代码,哪些是错误的,错误在哪里? (1)float income = 300.5f; (2)int num = 1.5; (3)if(1){ System.out.println(“测试”);} 6、请设计一个函数,有两个参数分别为整数数组array和整数target,其功能在数组array中找出,和为目标值target的两个数,并返回它们的数组下标!(提示:返回双重数组,因为可能多个整数对的和为target)
时间: 2024-02-15 15:02:58 浏览: 149
4、合法标识符为 A、C、D,B不合法,因为标识符中不能含有下划线。
5、第二行代码错误,因为将浮点型赋值给整型会导致精度丢失;第三行代码没有错误。
6、以下是一个可能的实现:
```java
public int[][] findTarget(int[] array, int target) {
int len = array.length;
Map<Integer, Integer> map = new HashMap<>();
List<int[]> list = new ArrayList<>();
for (int i = 0; i < len; i++) {
int complement = target - array[i];
if (map.containsKey(complement)) {
list.add(new int[]{map.get(complement), i});
}
map.put(array[i], i);
}
int[][] res = new int[list.size()][2];
for (int i = 0; i < list.size(); i++) {
res[i] = list.get(i);
}
return res;
}
```
这个函数使用了哈希表来记录每个数和它的下标,遍历数组时,判断当前数的补数是否在哈希表中出现过,如果出现过,就说明找到了一对数,将它们的下标加入到结果集中。最后返回结果集。注意,这个实现只能找到一组解,如果有多组解,需要稍作修改。
阅读全文