62. 不同路径

我觉得我有必要把我能写出到递归也贴出来,毕竟很多人搜不到,大佬还拿递归不当回事
递归,输入m和n的时候减一操作

int uniquePaths(int m, int n) {
	if(m<0 || n<0)
	  return 1;
	if(0==m)
	  return uniquePaths(m,n-1);
	if(0==n)
	  return uniquePaths(m-1,n);

	return uniquePaths(m,n-1)+uniquePaths(m-1,n);
}

dp

int dp(int m ,int n)
{
	vector<vector<int>>a(m,vector<int>(n,0));

	a[0][0]=1;
	for(int i=0;i<m;++i)
	{
		for(int j=0;j<n;++j)
		{
			if(0==i && 0==j)
				continue;
			else if(i==0)
			  a[i][j]=a[i][j-1];
			else if(0==j)
			  a[i][j]=a[i-1][j];
			else 
			  a[i][j] = a[i-1][j] + a[i][j-1];
		}
	}
	return a[m-1][n-1];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章