阿里25号笔试编程题——组队问题

#include <iostream>
#include <vector>
#include <numeric>
#include <limits>

using namespace std;

/** 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/
int findCircleNum(vector < vector < int > > M) {
	int n = M.size();
	if (n == 0)
		return 0;
	vector<int> dp(n + 1);
	dp[0] = 0; dp[1] = 1;
	for (int i = 2; i <= n; i++){
		dp[i] = dp[i - 1] + 1;
		for (int j = 0; j < i - 1; j++){
			if (M[i - 1][j] == 1){
				dp[i] = dp[i - 1];
				break;
			}
		}
	}
	return dp[n-1];
}

int main() {
	int res;

	int _M_rows = 0;
	int _M_cols = 0;
	cin >> _M_rows >> _M_cols;
	vector< vector < int > > _M(_M_rows);
	for (int _M_i = 0; _M_i<_M_rows; _M_i++) {
		for (int _M_j = 0; _M_j<_M_cols; _M_j++) {
			int _M_tmp;
			cin >> _M_tmp;
			_M[_M_i].push_back(_M_tmp);
		}
	}

	res = findCircleNum(_M);
	cout << res << endl;
	system("pause");
	return 0;

}
求解?为什么return dp[n-1] AC了,但是return dp[n]通过率为0%,感觉return dp[n]才是正解呀
全部评论
这题可以用dp吗?我用并查集做的
点赞 回复 分享
发布于 2017-08-25 22:03
我想问…为什么你们就会ac
点赞 回复 分享
发布于 2017-08-25 21:37

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务