BAT某厂数据分析终面面经

2020-10-26 14:43:19 浏览数 (1)

1. 给定一个二维整型矩阵,已知矩阵的每一行都按照从小到大的顺序排列,每一列也都按照从小到大的顺序排列。现在给出一个数,请写一个函数返回该数是否存在于矩阵中。

在保证正确性的基础上,请尽量给出比较高效的解法。请列出你的算法时间复杂度与空间复杂度分别是多少?

代码语言:javascript复制
import java.util.Scanner; 

public class Matric{ 
  public static void main(String[] arg) 
  { 
    Scanner in = new Scanner(System.in); 
    int[][] matric=null; 
    int a=0,b=0; 
    a= in.nextInt(); 
    b= in.nextInt(); 
    matric =new int[a][b]; 
    for (int i=0;i<a;i  ) 
    { 
      for(int j=0;j<b,j  ) 
      { 
        matrix[i][j]=in.nextInt();     
      } 
    } 
    int target=in.nextInt(searchTrue(matrix,target)); 

  } 
 

  private static boolean searchTrue(int [][] matrix,int target){ 
    int row=matrix.length; //行 
    int col=matrix[0].length; //列 
    int i=0; 
    int j=col-1; 
    while(i<row && j>0){ 
      if(matrix[i][j]>target){ 
        j--; 
      }else if(matrix[i][j]<target) 
        i  ; 
      else 
       return true; 
    } 
    return false; 
  } 
 
} 

2. 一个国家的人都喜欢生男孩,如果生的是女孩,则继续生直到生男孩为止;如果生男孩则停止。求这个国家的男女比例?写计算过程即可

n对夫妇n个男孩

生男孩概率和生女孩概率一致 50%

n/2个男孩第一胎 同时存在n/2个女孩是第一胎

n/2对生女孩的夫妇继续生,然后就会有n/4

以此类推 女孩数量就是:n/2 n/4 n/8.....=无限接近与n

n:n=1:1

3. 一堆硬币里面有a个真币和b个假币,真币一面公一面字,假币两面都是字。从中随机抽一个硬币,抛c次全是字。求这个硬币是真币的概率?写计算过程即可

P(x=1|c)=P(x=1 and c)/P(c)

# P(A|B)=P(AB)/P(B)

P(x=1 and c)=a/(b a)*(1/2)^c

P(c)=b/(b a) a/(b a)*(1/2)^c

bat

0 人点赞