파스칼의 삼각형

파스칼의 삼각형이 구성되는 방식에서 연역:

목록의 시작과 끝의 상자는 항상 '1'로 설정됩니다.



처음에 처음 2개 레벨에는 요소 합산이 없으며 추가 프로세스는 3차 레벨부터 시작됩니다.



이전 수준 답변을 더하면 삼각형 중앙에 새 숫자가 표시됩니다.



이 문제에 접근하는 방법?
  • 각 레벨에 대해 '여기'에 대한 포인터를 유지할 수 있습니다.
    삼각형
  • 또한 삼각형 패턴으로 자라는 센터 상자가 있음을 알 수 있습니다.

  • 레벨이 '1'일 때 이전 레벨에서 추가할 '0' 요소가 있음을 주목하십시오.
    레벨 1에서 --> 0 요소는 다음을 추가하여 형성됩니다.
    레벨 2에서 --> 1개의 요소가 다음을 추가하여 형성됩니다.
    레벨 3에서 --> 다음을 추가하여 2개의 요소가 형성됩니다.
    등등...
  • 우리는 'i'의 첫 번째 수준에 있을 때 초기화하는 'j' 변수를 가질 수 있습니다.
  • 여기서 우리는 'j'를 '0'으로 초기화하고 'i'보다 작습니다.

  • 'i' 및 'j' 값 이 문제에서 여러 목적을 수행합니다.
  • 'i'는 각 레벨을 나타내고 'j'는 이전 요소를 더하여 구성된 요소를 나타냅니다.
  • 'j'는 '0'에서 시작하여 'i'보다 작은 1에서 실행되고 각 레벨에서 상자를 생성합니다.
  • 대답은 List 즉 (List of Lists)에 저장됩니다. 이전 레벨 데이터를 검색하고 이를 추가하여 현재 값을 구성할 수 있습니다.

  • 암호:

       for(int i=1; i<=numRows; i++){
                for(int j=0; j<i; j++){
    


  • 첫 번째 및 마지막 상자에 '1'을 추가하고 싶습니다.

  • for(int i=1;i<=numRows;i++){      
        for(int j=0; j<i; j++){
          if(j==0 || j==i-1){  // add '1' to first box and last box
              curr.add(1);  // Add to list curr
                   }
    


    - (1:i-1)에서 중앙에 있는 상자를 위해

    for(int i=1;i<=numRows;i++){
               List<Integer> curr = new ArrayList<>();       
               for(int j=0;j<i;j++){
                   if(j==0 || j==i-1){
                       curr.add(1);
                   }
                   else{
    curr.add(levels.get(i-1).get(j)+ levels.get(i-1).get(j-1)); // to form new elements by  adding values from previous levels
               }
            }
    


    드라이 런:








    도움이 되셨다면 좋아요를 눌러주세요. 이것은 내가 이와 같은 새로운 기사를 배우고 작성하는 데 도움이 될 것입니다.
    감사!

    좋은 웹페이지 즐겨찾기