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];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章