【LeetCode-面試演算法經典-Java實現】【119-Pascal's Triangle II(帕斯卡三角形(楊輝三角)II)】

來源:互聯網
上載者:User

標籤:帕斯卡   演算法   面試   java   

【119-Pascal’s Triangle II(帕斯卡三角形(楊輝三角)II)】 【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】 原題

  Given an index k, return the kth row of the Pascal’s triangle.
  For example, given k = 3,
  Return [1,3,3,1].
  Note:
  Could you optimize your algorithm to use only O(k) extra space?

題目大意

  給定一個正整數k,求帕斯卡的第k行。

解題思路

  對任意的n>0有
  f(1, n)=1,(n>0)
  f(n, n)=1,(n>2)
  f(i,j) = f(i-1, j-1)+f(i, j-1),i>2,j>2,
  求第k行。

代碼實現

演算法實作類別

import java.util.*;public class Solution {    public List<Integer> getRow(int rowIndex) {        rowIndex++; // 第rowIndex的實質資料數目        if (rowIndex < 0) {            return null;        }        List<Integer> result = new ArrayList<>(rowIndex);        if (rowIndex >= 1) {            result.add(1);        }        if (rowIndex >= 2) {            result.add(1);        }        int line = 0; // 記錄當前使用哪一行        int prev; // 上一行是哪一行        if (rowIndex >= 3) {            int[][] data = new int[2][rowIndex];            // 【1】            data[0][0] = 1;            data[1][0] = 1;            data[1][1] = 1;            for (int i = 2; i < rowIndex; i++) {                line = i % 2; // 新計算的資料儲存在第0或者第1行                prev = (i - 1 + 2) % 2;//                data[line][0] = 1; // 設定第一個數字,可以不用,【1】處已經進行了,data[x][0]總為1                for (int j = 1; j < i; j++) {                    data[line][j] = data[prev][j - 1] + data[prev][j];                }                data[line][i] = 1; // 設定最後一個數            }            //             result.clear();            for (int i = 0; i < rowIndex; i++) {                result.add(data[line][i]);            }        }        return result;    }}
評測結果

  點擊圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中查看完整圖片。

特別說明 歡迎轉載,轉載請註明出處【http://blog.csdn.net/derrantcm/article/details/47589235】

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【LeetCode-面試演算法經典-Java實現】【119-Pascal's Triangle II(帕斯卡三角形(楊輝三角)II)】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.