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