三、找出所有行中最小公共元素(Biweekly9)

题目描述:
给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了。请你帮忙找出在所有这些行中 最小的公共元素。

如果矩阵中没有这样的公共元素,就请返回 -1。

示例:

输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]]
输出:5

提示:

1 <= mat.length, mat[i].length <= 500
1 <= mat[i][j] <= 10^4
mat[i] 已按递增顺序排列。

比较简单

class Solution {
    public int smallestCommonElement(int[][] mat) {
       List> list = new ArrayList>();
		for (int i = 0; i < mat.length; i++) {
			Set set = new HashSet<>();
			for (int j = 0; j < mat.length; j++) {
				set.add(mat[i][j]);
			}
			list.add(set);
		}
		int tem[] = mat[0];
		for (int i = 0; i < tem.length; i++) {
			int x = tem[i];
			boolean flag = false;
			for (int j = 1; j < list.size(); j++) {
				Set temset = list.get(j);
				if(!temset.contains(x)){
					flag = true;
					break;
				}
			}
			if(!flag){
				return x;
			}
		}
		
		return -1; 
    }
}

你可能感兴趣的:(竞赛)