zoukankan      html  css  js  c++  java
  • leetcode-剑指04-OK

    // 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);
    }
    
  • 相关阅读:
    设计模式——原型模式
    设计模式——复合模式
    设计模式——桥接模式
    建筑模式
    设计模式——单键模式
    工厂模式
    抽象工厂
    设计模式——适配器模式
    一个简单的文件上传功能控件(原创)
    算法题:用php生成excel列
  • 原文地址:https://www.cnblogs.com/gallien/p/14347934.html
Copyright © 2011-2022 走看看