函数int findMax(int arr[],int low,int high)计算数组中最大元素,其中数组arr从索引low到high,( )正确实现了分治逻辑。
1 if (low == high) 2 return arr[low]; 3 int mid = (low + high) / 2; 4 return arr[mid]
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;
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;
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;