#力扣 LeetCode LCP 22. 黑白方格畫 @FDDLC
阿新 • • 發佈:2021-02-12
技術標籤:演算法&資料結構
題目描述:
https://leetcode-cn.com/problems/ccw6C7/
Java程式碼:
class Solution { //f(2,3)=4,f(3,5)=9 public int c(int n,int m){ int ans=720; //1*2*3*4*5*6=720 for(int i=1;i<=m;i++)ans=ans*(n-i+1)/i; return ans/720; } public int paintingPlan(int n, int k) { int ans=0; for(int i=0;i<n;i++){ //i,j無需等於n for(int j=0;j<n;j++)if((i+j)*n-i*j==k)ans+=c(n,i)*c(n,j); } return n*n==k?1:ans; //n*n==k時需要特殊處理 } }
稍微修改一下:
class Solution { //f(2,3)=4,f(3,5)=9 public int c(int n,int m){ int ans=1; for(int i=1;i<=m;i++)ans=ans*(n-i+1)/i; return ans; } public int paintingPlan(int n, int k) { int ans=0; for(int i=0;i<n;i++){ //i,j無需等於n for(int j=0;j<n;j++)if((i+j)*n-i*j==k)ans+=c(n,i)*c(n,j); } return n*n==k?1:ans; //n*n==k時需要特殊處理 } }