码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-剑指04-OK

时间:2021-01-30 12:17:05      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tps   https   ret   size   http   get   int   ||   lan   

// language c
// 剑指04
// https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/

bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target){
	// 单行查找的函数的函数
	if((matrixSize==0) ||(matrixColSize[0]==0))
		return false;
	bool find(int arr[],int size, int x){
		for(int i =0; i<size; i++){
			if(arr[i] == x)
				return true;
		}
		return false;
	}


	//内置一个函数来求
	bool findinside(int up,int down, int left, int right, int x){
		if(down == up){
			int new1[right-left+1];
			for(int i = 0; i<right-left+1; i++){
				new1[i] = matrix[up][left +i];
			}
			return find(new1, right-left+1, x);
		}


		if(left == right){
			int new2[down-up+1];
			for(int i = 0; i<down-up+1; i++){
				new2[i] = matrix[up+i][left];
			}
			return find(new2, down-up+1, x);
		}


		if(x<matrix[up][left])
			return false;
		if(x>matrix[down][right])
			return false;
		bool ans = 	findinside(up,(up+down)/2,left, (left+right)/2,target)||					findinside((up+down)/2+1,down,left, (left+right)/2,target)||					findinside(up,(up+down)/2,(left+right)/2+1,right ,target)||					findinside((up+down)/2+1,down,(left+right)/2+1,right,target );
		return ans;
	}

	return findinside(0,matrixSize-1,0,matrixColSize[0]-1,target);
}

leetcode-剑指04-OK

标签:tps   https   ret   size   http   get   int   ||   lan   

原文地址:https://www.cnblogs.com/gallien/p/14347934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!