leetcode 118. 楊輝三角 119 楊輝三角 II go語言實現

代碼實現:

package main

import "fmt"

func main() {
	//arr := generate(0)
	res := getRow(3)
	fmt.Println(res)

}

/**
 * @Description: 楊輝三角 I 類似動態規劃
 *
 * @Date:
 * @Author: fuGuoWen
 * @Return
 * @Throws
 */
func generate(numRows int) [][]int {
	/** 創建二維數組 */
	res := make([][]int, numRows)
	if numRows == 0 {
		return res
	}
	res[0] = []int{1}
	for i := 1; i < numRows; i++ {
		/** 創建一維數組 */
		res[i] = make([]int, i+1)
		res[i][0] = 1
		res[i][i] = 1
		for j := 1; j < i; j++ {
			/** 下面的元素等於上面元素的和 */
			res[i][j] = res[i-1][j-1] + res[i-1][j]
		}
	}
	return res
}

/**
 * @Description: 楊輝三角 II
 *
 * @Date:
 * @Author: fuGuoWen
 * @Return
 * @Throws
 */
func getRow(rowIndex int) []int {
	//創建切片
	res := make([]int, rowIndex+1)
	res[0] = 1
	for i := 1; i <= rowIndex; i++ {
		//從後向前迭代元素,如果是從前向後會出現數據覆蓋,故從後向前迭代
		for j := i; j > 0; j-- {
			res[j] = res[j-1] + res[j]
		}
	}
	return res
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章