swift 算法 简单27.杨辉三角II

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 3
输出: [1,3,3,1]

解法:
 

func getRow(_ rowIndex: Int) -> [Int] {
        var bigArray = [[Int]]()
        
        guard rowIndex >= 0 else {
            return []
        }
        
        var index = 1
     
        while index > 0 {
            
            if index == 1  {
                
                bigArray.append([1])
               
            }else if index == 2{
                
                bigArray.append([1,1])
                
            }else{
                
                var minArray = [Int]()
                var temArray = bigArray[index-2] //取出上一行
                
                for low in 0..<index {
                    
                    if low == 0 {
                        minArray.append(1)
                    }else if low == index-1 {
                        minArray.append(1)
                    }else{
                        minArray.append(temArray[low-1]+temArray[low])
                    }
                    
                }
                
                bigArray.append(minArray)
                
               
            }
            
            if(rowIndex == index-1){
                return bigArray[rowIndex]
            }
            
            if(index>0){
                index += 1
            }
        }
        
        return []
    }

猜你喜欢

转载自blog.csdn.net/huanglinxiao/article/details/92560726