题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
int BinarySearch(int *arr,int width,int target)
{
int left = 0;//0
int right = width - 1;//3
while(left <= right)
{
int mid = (left + right)/2;//1 , 2,3
if(arr[mid] > target)
{
right = mid - 1;
}
else if (arr[mid] < target)
{
left = mid + 1; //2,3
}
else if(arr[mid] == target)
{
return 1;
}
}
return 0;
}
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen )
{
int i = 0;
int width = *arrayColLen;
for( i = 0;i < arrayRowLen ;i++)
{
int ret = 0;
ret = BinarySearch( array[i], width, target); //对每行进行二分查找
if(ret == 1)
{
return true;
}
}
return false;
// write code here
}
#刷题#
{
int left = 0;//0
int right = width - 1;//3
while(left <= right)
{
int mid = (left + right)/2;//1 , 2,3
if(arr[mid] > target)
{
right = mid - 1;
}
else if (arr[mid] < target)
{
left = mid + 1; //2,3
}
else if(arr[mid] == target)
{
return 1;
}
}
return 0;
}
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen )
{
int i = 0;
int width = *arrayColLen;
for( i = 0;i < arrayRowLen ;i++)
{
int ret = 0;
ret = BinarySearch( array[i], width, target); //对每行进行二分查找
if(ret == 1)
{
return true;
}
}
return false;
// write code here
}
#刷题#