函数 int findMax(int arr[], int low, int high) 计算数组中最大元素,其中数组 arr 从索引 low 到 high ,( )正确实现了分治逻辑。
- A. 1 if (low == high) 2 return arr[low]; 3 int mid = (low + high) / 2; 4 return arr[mid];
- B. 1 if (low >= high) 2 return arr[low]; 3 int mid = (low + high) / 2; 4 int leftMax = findMax(arr, low, mid - 1); 5 int rightMax = findMax(arr, mid, high); 6 return leftMax + rightMax;
- C. 1 if (low > high) 2 return 0; 3 int mid = low + (high - low) / 2; 4 int leftMax = findMax(arr, low, mid); 5 int rightMax = findMax(arr, mid + 1, high); 6 return leftMax * rightMax;
- D. 1 if (low == high) 2 return arr[low]; 3 int mid = low + (high - low) / 2; 4 int leftMax = findMax(arr, low, mid); 5 int rightMax = findMax(arr, mid + 1, high); 6 return (leftMax > rightMax) ? leftMax : rightMax;
正确答案:D