diff --git a/solution/0100-0199/0119.Pascal's Triangle II/README.md b/solution/0100-0199/0119.Pascal's Triangle II/README.md index 3610a4eb06946..0cd578fe203bc 100644 --- a/solution/0100-0199/0119.Pascal's Triangle II/README.md +++ b/solution/0100-0199/0119.Pascal's Triangle II/README.md @@ -34,7 +34,26 @@ ```python - +class Solution: + def getRow(self, rowIndex: int) -> List[int]: + def makePascal(prevArr): + if len(prevArr) == 0: + return [1] + elif len(prevArr) == 1: + return [1, 1] + else: + NewArr = [0] * (len(prevArr) + 1) + NewArr[0], NewArr[-1] = 1, 1 + for i in range(len(prevArr) - 1): + NewArr[i + 1] = prevArr[i] + prevArr[i + 1] + return NewArr + + temp = [] + Pascal = [] + for i in range(rowIndex + 1): + temp = makePascal(temp) + Pascal.append(temp) + return Pascal[rowIndex] ``` ### **Java** @@ -42,7 +61,32 @@ ```java +class Solution { + public List getRow(int rowIndex) { + List ret = new LinkedList<>(); + long nk = 1; + for (int i = 0; i <= rowIndex; i++) { + ret.add((int) nk); + nk = nk * (rowIndex - i) / (i + 1); + } + return ret; + } +} +``` +### **Go** + +```go +func getRow(rowIndex int) []int { + row := make([]int, rowIndex+1) + row[0] = 1 + for i := 1; i <= rowIndex; i++ { + for j := i; j > 0; j-- { + row[j] += row[j-1] + } + } + return row +} ``` ### **...** diff --git a/solution/0100-0199/0119.Pascal's Triangle II/README_EN.md b/solution/0100-0199/0119.Pascal's Triangle II/README_EN.md index 460b9ef4c848b..ae8b74f064539 100644 --- a/solution/0100-0199/0119.Pascal's Triangle II/README_EN.md +++ b/solution/0100-0199/0119.Pascal's Triangle II/README_EN.md @@ -37,13 +37,57 @@ ### **Python3** ```python - +class Solution: + def getRow(self, rowIndex: int) -> List[int]: + def makePascal(prevArr): + if len(prevArr) == 0: + return [1] + elif len(prevArr) == 1: + return [1, 1] + else: + NewArr = [0] * (len(prevArr) + 1) + NewArr[0], NewArr[-1] = 1, 1 + for i in range(len(prevArr) - 1): + NewArr[i + 1] = prevArr[i] + prevArr[i + 1] + return NewArr + + temp = [] + Pascal = [] + for i in range(rowIndex + 1): + temp = makePascal(temp) + Pascal.append(temp) + return Pascal[rowIndex] ``` ### **Java** ```java +class Solution { + public List getRow(int rowIndex) { + List ret = new LinkedList<>(); + long nk = 1; + for (int i = 0; i <= rowIndex; i++) { + ret.add((int) nk); + nk = nk * (rowIndex - i) / (i + 1); + } + return ret; + } +} +``` +### **Go** + +```go +func getRow(rowIndex int) []int { + row := make([]int, rowIndex+1) + row[0] = 1 + for i := 1; i <= rowIndex; i++ { + for j := i; j > 0; j-- { + row[j] += row[j-1] + } + } + return row +} ``` ### **...** diff --git a/solution/0100-0199/0119.Pascal's Triangle II/Solution.go b/solution/0100-0199/0119.Pascal's Triangle II/Solution.go new file mode 100644 index 0000000000000..33234e9dfef49 --- /dev/null +++ b/solution/0100-0199/0119.Pascal's Triangle II/Solution.go @@ -0,0 +1,10 @@ +func getRow(rowIndex int) []int { + row := make([]int, rowIndex+1) + row[0] = 1 + for i := 1; i <= rowIndex; i++ { + for j := i; j > 0; j-- { + row[j] += row[j-1] + } + } + return row +} diff --git a/solution/0100-0199/0119.Pascal's Triangle II/Solution.py b/solution/0100-0199/0119.Pascal's Triangle II/Solution.py new file mode 100644 index 0000000000000..7646dc44e67bc --- /dev/null +++ b/solution/0100-0199/0119.Pascal's Triangle II/Solution.py @@ -0,0 +1,20 @@ +class Solution: + def getRow(self, rowIndex: int) -> List[int]: + def makePascal(prevArr): + if len(prevArr) == 0: + return [1] + elif len(prevArr) == 1: + return [1, 1] + else: + NewArr = [0] * (len(prevArr) + 1) + NewArr[0], NewArr[-1] = 1, 1 + for i in range(len(prevArr) - 1): + NewArr[i + 1] = prevArr[i] + prevArr[i + 1] + return NewArr + + temp = [] + Pascal = [] + for i in range(rowIndex + 1): + temp = makePascal(temp) + Pascal.append(temp) + return Pascal[rowIndex]