We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
Loading...
  • Practice
  • Compete
  • Jobs
  • Leaderboard
  • Hiring developers?
  1. Practice
  2. Data Structures
  3. Arrays
  4. 2D Array - DS
  5. Discussions

2D Array - DS

  • Problem
  • Submissions
  • Leaderboard
  • Discussions
  • Editorial

    You are viewing a single comment's thread. Return to all comments →

  • madulidjpAsked to answer 4 years ago+ 13 comments

    yeah. you should initialize the max value to the value of the first hourglass.

    28|
    ParentPermalink
    • ronak319 4 years ago+ 43 comments

      you can also set any large negative value also. Then no need to caluculate first hourglass separately.

      for e.g , max_value = -99999;

      42|
      ParentPermalink
      • ivdekov 4 years ago+ 6 comments

        This is helpful, thank you. I used Integer.MIN_VALUE;

        53|
        ParentPermalink
        • ldaicich 3 years ago+ 7 comments

          Just a very silly thing, but you can also use Short values for the purpose of this problem, it doesn't have to be necessarily an Integer. Just for using less memory. :)

          10|
          ParentPermalink
          • bin_zhao10 3 years ago+ 1 comment

            I think the input variables are defined as primitive type int.

            -8|
            ParentPermalink
            • ocalderon 7 months ago+ 0 comments

              But that doesn't mean you cannot change. At the end the output is a string, so it doesn't matter.

              0|
              ParentPermalink
          • abhilashupare 3 years ago+ 2 comments

            Guys we also have one more alternative, with the help of flag we can achieve it,

            if (flag) {

            max = sum;

            flag = false;

            }

            if (max < sum) {

            max = sum;

            }

            1|
            ParentPermalink
            • mdmoniskhan 1 year ago+ 0 comments

              will it not give a compilation error i.e max is not initialized or something like that?

              -3|
              ParentPermalink
            • canpy30 10 months ago+ 1 comment

              or in JS:

              let max;

              if (typeof max !== 'number' || sum > max) { max = sum }

              2|
              ParentPermalink
              • Raullg98 9 months ago+ 1 comment

                I used, max = -Infinity

                0|
                ParentPermalink
                • kanishk_vishwa21 6 months ago+ 1 comment

                  Very large negative values are not necessary. See that an hourglass is made up of 7 digits. the sum of 'those' 7 digits can be minimum when each digit is itself minimum, i.e, -9. Hence, the minimum sum will be (7)x(-9), which equals -63. So, we can initialize minimum as -64

                  9|
                  ParentPermalink
                  • dani7603 5 months ago+ 0 comments

                    you could actually initialize it with -63 ,would still work.

                    3|
                    ParentPermalink
          • successhawk 3 years ago+ 1 comment

            Using your logic, you could use the type byte.

            -8|
            ParentPermalink
            • happyoutdoors 5 months ago+ 0 comments

              In Java you could use byte, since it is signed. In C# byte is an unsigned type and not appropriate.

              To store the numbers you really only need 7 bits, but there's little use in packing these arrays.

              -1|
              ParentPermalink
          • TechieToby 1 year ago+ 2 comments

            Given the constraint in the question (-9 <= arr[i][j] <= 9 and 0 <= i,j <= 5), I used the possible maximum negative value to initialize my max value (-9 * 6 = -54).

            2|
            ParentPermalink
            • sammurphych 1 year ago+ 4 comments

              max negative value is -63 (-9 * 7)

              20|
              ParentPermalink
              • amanagarwal2189 1 year ago+ 1 comment

                anything less than -54.

                -2|
                ParentPermalink
                • ghaderi_amin 1 year ago+ 2 comments

                  For python initialize with: -9223372036854775807

                  -5|
                  ParentPermalink
                  • sanyal_parnab96 6 months ago+ 0 comments

                    I initialized with 1 << 16 * -1

                    -3|
                    ParentPermalink
                  • happyoutdoors 5 months ago+ 0 comments

                    That would very silly. Why not just use the minimum value of -63 as others have indicated.

                    2|
                    ParentPermalink
              • steve_o 10 months ago+ 0 comments

                This is correct, but the test cases given also had nothing lower than -54, which was lucky for me, since I made the (mindless) error of thinking there were only 6 elements in an hourglass.

                One of the test cases should have a max of -62 for this reason, IMO.

                0|
                ParentPermalink
              • sean_novick 8 months ago+ 0 comments

                This is correct. Given the question the lowest possible sum is -63. The sum of an hourglass is always multiplied by 7 (2 rows of 3 + 1 column of 1). The highest negative number is -9. Therefore -9 * 7 = -63

                0|
                ParentPermalink
              • floreat_bangoria 8 months ago+ 0 comments

                first value always works and doesn't rely on you knowing the input before execution

                0|
                ParentPermalink
            • vineeth_1999 7 days ago+ 0 comments

              yes intitalizing max value less than maximum negative value helped me in solving 3,5,7 testcases

              0|
              ParentPermalink
          • kanishk_vishwa21 6 months ago+ 0 comments

            Very large negative values are not necessary. See that an hourglass is made up of 7 digits. the sum of 'those' 7 digits can be minimum when each digit is itself minimum, i.e, -9. Hence, the minimum sum will be (7)x(-9), which equals -63. So, we can initialize minimum as -64.

            2|
            ParentPermalink
          • rishabh10 5 months ago+ 0 comments

            as a[i][j]>=-9 so just initialize the min value to -9*7 as hour glass consiste of 7 elements and considering worst case for least sum all would be -9

            1|
            ParentPermalink
          • tarun_77870 4 months ago+ 0 comments

            Well if you will analyze inuts then you will get the idea. no array value can be < -9. it means [(-9 *3 *2)+-(9)] . this is your lowest value

            0|
            ParentPermalink
        • mudit2jain 2 years ago+ 2 comments

          It passed the testcases but why it doesn't runs when initialized to zero?

          6|
          ParentPermalink
          • prajapple 1 year ago+ 4 comments

            If the sums of hourglasses are all negative , and if u have taken your max variable initilized to zero and calculate the max with refrence to 0 obviously you will be returning 0 as the answer which is wrong . So its better to initilize with Integer.MIN_VALUE to a variable to which will be storing a max value .

            17|
            ParentPermalink
            • kapil18pandey 1 year ago+ 1 comment

              thanks mate... helped a lot!!!

              -2|
              ParentPermalink
              • balajilitsv 1 year ago+ 1 comment

                Or initialize it to any value less than -63, because the input values of the array ranges from -9 to +9. So a hour glass can contain a maximum of 7 times -9, which sums up to -63. Any value greater than -64 can be accepted to swap the max variable, right!

                HotIce! Try this man!

                10|
                ParentPermalink
                • 1l0v3c0d3 1 year ago+ 0 comments

                  Actually, -63 will work too.

                  3|
                  ParentPermalink
            • balajilitsv 1 year ago+ 0 comments

              Or initialize it to any value less than -63, because the input values of the array ranges from -9 to +9. So a hour glass can contain a maximum of 7 times -9, which sums up to -63. Any value greater than -64 can be accepted to swap the max variable, right!

              HotIce!

              3|
              ParentPermalink
            • VishalVasistha 1 year ago+ 0 comments

              Taking max value as integer.MIN_VALUE is also correct however max can also be sumArray[0] (the array of sum of hourglasses) .

              -3|
              ParentPermalink
            • jaismeenkaur 1 year ago+ 0 comments

              Thanks ! That helped.

              0|
              ParentPermalink
          • tfloresu 1 year ago+ 1 comment

            Zero is considered to be a positive number. If all the hour glasse's totals are negative they wont beat your zero.

            1|
            ParentPermalink
            • happyoutdoors 5 months ago+ 0 comments

              Even if some of them are zero they won't beat that zero.

              0|
              ParentPermalink
        • pratikkejriwal 1 year ago+ 0 comments

          instead of using min value of integer, you can just initialize it to -63 as it is clearly mentioned that the values cannot be less than -9. So -9*7=-63

          11|
          ParentPermalink
        • mostafakerim30 7 months ago+ 1 comment

          I made two iterations: First time to find the lowest value and the second time to calculate the highest value starting at the lowest value.

          0|
          ParentPermalink
          • happyoutdoors 5 months ago+ 0 comments

            That is extremely inefficient since it is not necessary to know the lowest value just to initialize your maximum value variable.

            1|
            ParentPermalink
        • ahmadmoussawi 2 months ago+ 0 comments

          Actually it shoud be the smallest number possible where all values are equals to -9 => -9*7 = -63

          0|
          ParentPermalink
        • SONIT 1 month ago+ 0 comments

          You could also keep -63. Because minimum hourglass sum possible is -63.

          0|
          ParentPermalink
      • mondayrain 4 years ago+ 4 comments

        It's worth noting that the description clearly states that the input will be -9 <= R <= 9. This means that the smallest possible value will be -9*7 (as there are 7 elements in an hourglass). So one can just initialize the max value to -63 :)

        81|
        ParentPermalink
        • Eschatite 4 years ago+ 0 comments
          [deleted]
          0|
          ParentPermalink
        • aman1324 3 years ago+ 0 comments

          Yes. In case the constraints are not there, use Integer.MIN_VALUE.

          6|
          ParentPermalink
        • anuragpugalia11 2 years ago+ 0 comments

          yes it worked. thanks

          0|
          ParentPermalink
        • architvis 1 year ago+ 0 comments

          This is were I messed up, I initialized max value to -9. Thanks, didn't relize were I messed up at until reading your comment.

          0|
          ParentPermalink
      • ysasaki 4 years ago+ 1 comment

        I just did this:

        int max = Integer.MIN_VALUE;
        
        -1|
        ParentPermalink
        • Retr098 2 years ago+ 1 comment

          you can initilize to arrays first value, that is at a[0]

          -7|
          ParentPermalink
          • ronhash 2 years ago+ 0 comments

            This is wrong - because you sum 7 numbers, which all can be -9. a[0] can be -9, but the minimal value can be -63

            1|
            ParentPermalink
      • kaasib 4 years ago+ 1 comment

        Simply set it to null and use type specific comparison to assign first sum.

        -2|
        ParentPermalink
        • anshulkataria4 3 years ago+ 1 comment

          why do we need to set max to -63 or to any such value ?

          3|
          ParentPermalink
          • t_egginton 3 years ago+ 1 comment

            because if you initialise to zero, if the max hourglass sum is negative then it will not overwrite the zero value. best to either initialise it with the value of the first hourglass (slightly more elegent in my opinion) or a large negative value. 63 is significant because it is not possible to get a sum less than that under the constraints given.

            11|
            ParentPermalink
            • nancy345 3 years ago+ 1 comment

              hello sir! i want to know that if we want to do this programming in c so what programe is used from the starting because my basic in c and c++ is not clear and also i m not familiar with its operation so kindly send me a complete programe based on it in C. thanku

              -26|
              ParentPermalink
              • mdumlupinar 3 years ago+ 0 comments
                [deleted]
                0|
                ParentPermalink
      • amulya_123 3 years ago+ 2 comments

        why should we initialize max value to large negative value?

        0|
        ParentPermalink
        • supertrens 2 years ago+ 0 comments

          because if you initialise to zero, if the max hourglass sum is negative then it will not overwrite the zero value. since 0 will be greater to any negative number. What I do is save the first hourglass sum as teh finalSum and update it when/if the next ones are bigger.

          5|
          ParentPermalink
        • sugsurnitsin 2 years ago+ 0 comments

          what is the hour glass

          -14|
          ParentPermalink
      • ernestns 3 years ago+ 0 comments
        [deleted]
        0|
        ParentPermalink
      • xudonglee 3 years ago+ 1 comment

        Because of the -9<= A[i][j] <=9, so the extrame situation is that all the 7 elem are -9, the sum is -63, and any value that smaller than -63 could be set to the initial value.

        4|
        ParentPermalink
        • sspokala 1 year ago+ 0 comments

          thanks for the help..

          1|
          ParentPermalink
      • shrewga 2 years ago+ 1 comment

        The least no. possible is -9 * 7 = -63. We can also initialize it to that. :)

        1|
        ParentPermalink
        • meerakrish 2 years ago+ 1 comment

          Thanks

          1|
          ParentPermalink
          • shrewga 2 years ago+ 0 comments
            [deleted]
            0|
            ParentPermalink
      • varun_1995 2 years ago+ 0 comments
        int max = Integer.MIN_VALUE;
        
        0|
        ParentPermalink
      • abhiram_n 2 years ago+ 0 comments

        actually -63 is enough.Since 7 slots having a minimum value of -9 in each would turn out to a maximum negative of -7*9=-63

        3|
        ParentPermalink
      • gmoralesc 2 years ago+ 0 comments

        I used Number.NEGATIVE_INFINITY with Javascript

        0|
        ParentPermalink
      • nikhil_j_kurien 2 years ago+ 0 comments

        you can set it to integer.MIN_VALUE

        2|
        ParentPermalink
      • GomathiN 2 years ago+ 0 comments

        You can use -63 as max value because it is stated in condition that a[i][j] is between -9 and + 9

        0|
        ParentPermalink
      • vamsi5 2 years ago+ 0 comments

        you know max_value = -63 would do just fine. because the lowest maximum number that can be achieved with given constraints is -63. The given constraints for element in array is [-9,9] so the max an hour glass with all -9s would give (-9)*(7(no_of elements in hour glass)) = -63

        -1|
        ParentPermalink
      • sangeetharaj 2 years ago+ 1 comment

        may i know what is the reason behind this? why we have to initiliza ma_value = -9999 or -63

        0|
        ParentPermalink
        • samuelpaulc 2 years ago+ 0 comments

          since the hourglass with smallest sum is -63 when all values in hourglass are -9

          0|
          ParentPermalink
      • nithindevn 2 years ago+ 0 comments
        [deleted]
        0|
        ParentPermalink
      • shiva_nk 2 years ago+ 0 comments

        -63 would be enough

        0|
        ParentPermalink
      • deepak111224 2 years ago+ 0 comments

        bro you can just set max value to -9 * 7 = -63 cause it can be the most small value of hourglass acording to question

        0|
        ParentPermalink
      • chaudharymayank1 1 year ago+ 0 comments

        even -63 can work fine

        4|
        ParentPermalink
      • alex_wallish 1 year ago+ 0 comments

        No need to set max value that low. It will not possibly be any lower than 7*9 so you can simply initialize it to 63.

        0|
        ParentPermalink
      • david_rodriguez2 1 year ago+ 0 comments

        perhaps -9*7 is enough, though

        0|
        ParentPermalink
      • harminder_oassan 1 year ago+ 0 comments

        you could just use one less than the minimum possible value of an hourglass, which is -64.

        -1|
        ParentPermalink
      • balajilitsv 1 year ago+ 0 comments

        Or initialize it to any value less than -63, because the input values of the array ranges from -9 to +9. So a hour glass can contain a maximum of 7 times -9, which sums up to -63. Any value greater than -64 can be accepted to swap the max variable, right!

        HotIce!

        0|
        ParentPermalink
      • mosjabr 1 year ago+ 0 comments

        since the least sum is -63 (when all elements are -9), you can initialize it to be -63

        0|
        ParentPermalink
      • _withoutwax 1 year ago+ 1 comment

        Or you can use

        float('-inf')
        

        which gives you the largest negative value.

        0|
        ParentPermalink
        • ghaderi_amin 1 year ago+ 0 comments

          Worked like a charm. Thanks. I didnt know we can compare floats and integers.

          1|
          ParentPermalink
      • dv1pr 1 year ago+ 0 comments

        I set max = nil and then checked if max was nil before setting max to the total with an or conditional

        e.g., max = total if max == nil || total > max

        1|
        ParentPermalink
      • aaliagab85 1 year ago+ 0 comments

        short mayor=-63;

        0|
        ParentPermalink
      • edward_cerveriz1 1 year ago+ 0 comments

        If you are writing in Java, you can actually use max_value= Integer.MIN_VALUE; to get the lowest signed interger value in case -99999 isn't enough.

        0|
        ParentPermalink
      • jordancg91 1 year ago+ 0 comments

        The problem specifies that arr[i][j] values are only between -9 and 9, so the minSum for any hourglass can be -63, specifing the initial max_value = -64 will ensure that any sum will be greater

        0|
        ParentPermalink
      • tpnewhistory 12 months ago+ 0 comments

        Actually, since the constraint is -9, and you are adding 7 values, the minimum would be -9 x 7 which is -63. That could save a fraction of memory instead of working with a large negative number.

        0|
        ParentPermalink
      • tung_nn83 11 months ago+ 0 comments
        [deleted]
        0|
        ParentPermalink
      • avansharma 11 months ago+ 1 comment

        This was helpful, thanks a ton.

        0|
        ParentPermalink
        • ishujain18123 4 months ago+ 0 comments

          include

          using namespace std; int main() {int a[6][6],sum,maxsum=0; for(int i=0;i<6;i++) {for(int j=0;j<6;j++) {cin>>a[i][j];

          } cout<<""<

          } if(sum>maxsum) { maxsum=sum; }

          } cout<

          }

          what is wrong with this code?

          -5|
          ParentPermalink
      • code60 11 months ago+ 0 comments

        Great solution if you don't care about scalability or the assumption that the dataset changes over time. Terrible solution if you do.

        0|
        ParentPermalink
      • AvinU 10 months ago+ 0 comments

        or you could initially allow to set first hour glass value as max value like if row & column is 0 & 0 respectively.....

        1|
        ParentPermalink
      • anthony_cortes94 8 months ago+ 0 comments

        Since the hour glass can only be a max of 7 digits and the smallest digit is -9, as long as your max value is initialized to less than -63 the results should be correct.

        0|
        ParentPermalink
      • shankar_223 8 months ago+ 0 comments

        since each value is between -9 to 9 so -9*7 = -63 should suffice

        0|
        ParentPermalink
      • moshe1rib 7 months ago+ 0 comments

        Min value according to the instructions is actually -9 so -10 would be fine :)

        0|
        ParentPermalink
      • chansek 6 months ago+ 0 comments

        maxValue should be initialized with -63. As every value ranges from -9 to 9.

        0|
        ParentPermalink
      • kanishk_vishwa21 6 months ago+ 0 comments

        Very large negative values are not necessary. See that an hourglass is made up of 7 digits. the sum of 'those' 7 digits can be minimum when each digit is itself minimum, i.e, -9. Hence, the minimum sum will be (7)x(-9), which equals -63. So, we can initialize minimum as -64.

        0|
        ParentPermalink
      • babloo_pe 6 months ago+ 0 comments

        thanks

        0|
        ParentPermalink
      • rublethomas 4 months ago+ 0 comments

        more like initiate to -64. The max value it can get down to is -9*7=-63

        0|
        ParentPermalink
      • vibinmky 1 month ago+ 0 comments

        Otherwise you can set max_value =-Infinity;

        0|
        ParentPermalink
      • chabasinsky 4 weeks ago+ 0 comments

        -63 is enough. Hourglass takes 7 elements from array. In description is info that one element of array can be min -9. So 7 x -9 = -63.

        0|
        ParentPermalink
    • jonmcclung 4 years ago+ 0 comments
      [deleted]
      0|
      ParentPermalink
    • mdumlupinar 3 years ago+ 1 comment

      you can set -63 for the initial value of the max variable, because the possible minimum value of a hourglass can up to be -63. According to the given restrictions, the minimum hourglass can have maximum seven -9. So, this is the initial number for us: 7x-9=-63.

      5|
      ParentPermalink
      • nancy345 3 years ago+ 4 comments

        how to do this task in C???

        -4|
        ParentPermalink
        • mdumlupinar 3 years ago+ 0 comments

          sorry, i am not familiar with c language.

          -6|
          ParentPermalink
        • azheruddin617mr1 2 years ago+ 11 comments
          int main()
          {
              int matrix[6][6];
              for(int i = 0;i < 6;i++) {
                  for(int j = 0;j < 6;j++) {
                       scanf("%d",&matrix[i][j]);
                  }
              }
              int maxsum = -1000,jj = 0;
              for(int i = 0;i < 4;i++) {
                  int sum = 0;
                  for(int j = jj;j < jj+3;j++) {
                      sum += matrix[i][j];
                      if(j==jj) sum += matrix[i+1][jj+1];
                      sum += matrix[i+2][j];
                  }
                  jj = (jj < 3) ? jj+1 : 0;
                  if(sum > maxsum) maxsum = sum;
                  if(jj != 0) i--;
              }
              printf("%d",maxsum);
              return 0;
          }
          
          22|
          ParentPermalink
          • dattagates 2 years ago+ 2 comments

            why have u assigned maxsum=-1000 ? can u elobarate

            -3|
            ParentPermalink
            • azheruddin617mr1 2 years ago+ 0 comments

              the inputs also given in negitive....

              -7|
              ParentPermalink
            • flash793 2 years ago+ 0 comments

              The constraints given say that any element in the array will be at least -9 and be at most 9. The smallest hourglass sum will be -9*7 = -63. So in this case, you just need to initialize max sum to be any value <= -63.

              8|
              ParentPermalink
          • meerakrish 2 years ago+ 0 comments

            why did you use j=jj

            7|
            ParentPermalink
          • Sarath_95 2 years ago+ 2 comments

            what the below statement does in the code?

            if(jj != 0) i--;

            -1|
            ParentPermalink
            • franklinvidal 2 years ago+ 0 comments
              jj = (jj < 3) ? jj+1 : 0; // set 0 if jj(collumn pointer) set in one position which allows calculate an hourglass
              if(sum > maxsum) maxsum = sum;
              if(jj != 0) i--; // if jj is in a position where a hourglass can be calculated, the line pointer(i) continue in the same line
              
              1|
              ParentPermalink
            • ragulravi1999 2 years ago+ 0 comments

              To run loop for same value of i with different values for j untill j maximum limit is reached

              0|
              ParentPermalink
          • bhavgothadiya 2 years ago+ 0 comments

            why not take -1

            -2|
            ParentPermalink
          • pa1v_kar 2 years ago+ 0 comments
            [deleted]
            0|
            ParentPermalink
          • pa1v_kar 2 years ago+ 4 comments

            could anyone identify the mistake

            int main(){
                int arr[6][6];
                for(int arr_i = 0; arr_i < 6; arr_i++){
                   for(int arr_j = 0; arr_j < 6; arr_j++){
                      
                      scanf("%d",&arr[arr_i][arr_j]);
                   }
                }
                int sum[30];
                int x=0;
                int arr_i,arr_j;
                int largest;
                
                for(arr_i=0;arr_i<3;arr_i++)
                {
                    sum[x]=0;
                    int count=0;
                    for(arr_j=arr_i;count<3;arr_j++)
                    {
                        if(count==0)
                        {
                              sum[x]+=arr[arr_i+1][arr_j+1];
                        }
                        sum[x]+=arr[arr_i][arr_j];
                        sum[x]+=arr[arr_i+2][arr_j];
                        
                        ++count;
                    }
                      
                    ++x;
                 }
                 largest=sum[0];
                for(int i=1;i<=x;i++)
                {   
                    if(largest<sum[i])
                        largest=sum[i];
                }
                printf("%d",largest);
                return 0;
            }
            
            1|
            ParentPermalink
            • Nidheesh_P 2 years ago+ 2 comments

              in for loop try i<4 instead of i<3

              0|
              ParentPermalink
              • manny_capacidade 1 year ago+ 1 comment

                Whats the reason behind i<4..Not able to get the reason.Can you explain please

                -1|
                ParentPermalink
                • fhasson91 1 year ago+ 0 comments

                  there are 4 hourglasses vertically and 4 hourglasses horizontally

                  1|
                  ParentPermalink
              • sakshi_munya 7 months ago+ 0 comments

                Thanks a lottt.....Nidheesh.

                0|
                ParentPermalink
            • uniquechhetrii 2 years ago+ 2 comments
              for(arr_i=0;arr_i<3;arr_i++)
                  {
                      sum[x]=0;
                      int count=0;
                      for(arr_j=arr_i;count<3;arr_j++)
                      {
                          if(count==0)
                          {
                                sum[x]+=arr[arr_i+1][arr_j+1];
                          }
                          sum[x]+=arr[arr_i][arr_j];
                          sum[x]+=arr[arr_i+2][arr_j];
                          
                          ++count;
                      }
                        
                      ++x;
              

              I didnt understand this part. Can somebody help me out in this?

              0|
              ParentPermalink
              • chadams 2 years ago+ 0 comments

                His algorithm is getting the middle element of the hourglass on the first pass through and then incrementing the top and bottom rows of the hourglass. He increments count to track the amount of loops needed to read a hourglass and increments x to correspond to the position in the hourglass; 0,1,2 respectively.

                0|
                ParentPermalink
              • vigneshiyer66661 2 years ago+ 0 comments
                [deleted]
                0|
                ParentPermalink
            • rachehua 5 months ago+ 0 comments

              If this is C++, how come the code is all in main function and not in the function they told us to write it as?

              0|
              ParentPermalink
            • kmerotha1996 4 months ago+ 0 comments

              int hourglassSum(vector> arr) { int i,j,sum=0,x=0,p=-50,count=0; for(i=0;i<4;i++){ sum=0; for(j=0;j<4;j++){ sum=arr[i+1][j+1]+arr[i][j+1]+arr[i][j+2]+arr[i][j]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2]; if(p } return(p); }

              0|
              ParentPermalink
          • chernandez2 2 years ago+ 5 comments

            This code passes all the test cases

            #include <map>
            #include <set>
            #include <list>
            #include <cmath>
            #include <ctime>
            #include <deque>
            #include <queue>
            #include <stack>
            #include <string>
            #include <bitset>
            #include <cstdio>
            #include <limits>
            #include <vector>
            #include <climits>
            #include <cstring>
            #include <cstdlib>
            #include <fstream>
            #include <numeric>
            #include <sstream>
            #include <iostream>
            #include <algorithm>
            using namespace std;
            
            int main(){
                vector< vector<int> > arr(6,vector<int>(6));
                for(int arr_i = 0;arr_i < 6;arr_i++){
                   for(int arr_j = 0;arr_j < 6;arr_j++){
                      cin >> arr[arr_i][arr_j];
                   }
                }
            
                vector<int> res;
                res.reserve(18);
            
                for(unsigned int j=0; j<4;++j){
                    for(unsigned int i=0; i<4;++i){
                        res.push_back(arr[i][j]+arr[i][j+1]+arr[i][j+2]+
                                         arr[i+1][j+1]+
                                arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2]);
                    }
                }
                cout<<*max_element(res.begin(),res.end())<<endl;
            
                return 0;
            }
            
            8|
            ParentPermalink
            • 160302032CSE 2 years ago+ 2 comments

              can anyone explain this part

              res.reserve(18); for(unsigned int j=0; j<4;++j){ for(unsigned int i=0; i<4;++i){ res.push_back(arr[i][j]+arr[i][j+1]+arr[i][j+2]+ arr[i+1][j+1]+ arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2]); } } cout<<*max_element(res.begin(),res.end())<

              0|
              ParentPermalink
              • revathymanulal 2 years ago+ 0 comments
                • res.reserve(18) is like declaring an array of size 18 though am not sure why size 18 was choosen ,I think 16 would have done the job.

                -the two for loops with contraints <4 is for the purpose of forming the hour glass (had it been <6 it would have resulted in indexing issues)

                -arr[i][j]+arr[i][j+1]+arr[i][j+2]+ arr[i+1][j+1]+ arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2] these are the indexes which form an hour glass, the sum of every hour glass is calculated and push to the res

                -cout<<*max_element(res.begin(),res.end()) the maximum value in res is choosen as the output

                1|
                ParentPermalink
              • revathymanulal 2 years ago+ 4 comments

                I used a similar approach but dint keep on storing all of the values of hour glass instead just kept on swaping the values incase the value of new hour glass was greater than the previous one.

                import sys
                
                a = []
                for arr_i in xrange(6):
                    arr_temp = map(int,raw_input().strip().split(' '))
                    a.append(arr_temp)
                    
                max_sum =-63
                    
                for i in range(4):
                    for j in range(4):
                        check_sum = a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]
                                    
                        if check_sum > max_sum:
                            max_sum = check_sum
                            
                print max_sum
                
                5|
                ParentPermalink
                • tppiotrowski 1 year ago+ 0 comments
                  [deleted]
                  0|
                  ParentPermalink
                • nr_selcuk 5 months ago+ 4 comments

                  why the range(4)? I think it should be the range(len(a)-2) in order to satisfy any size...

                  2|
                  ParentPermalink
                  • DarkC_oder 5 months ago+ 0 comments
                    [deleted]
                    0|
                    ParentPermalink
                  • sukhraj5 3 months ago+ 0 comments

                    The problem specifies the matrix is always 6x6

                    0|
                    ParentPermalink
                  • sandeepini 1 month ago+ 0 comments

                    Because our array is of 6x6. when we run arr[i][j+2] In j+2=5(When loop run second last time (3+2=5)) which valid . This is the reason.

                    0|
                    ParentPermalink
                  • sandeepini 1 month ago+ 0 comments

                    Because our array is of 6x6. when we run arr[i][j+2] In j+2=5(When loop run second last time (3+2=5)) which valid . This is the reason.

                    0|
                    ParentPermalink
                • pathansuhana969 4 months ago+ 0 comments

                  why it is not working in python3? any one pls explain.

                  0|
                  ParentPermalink
                • ankitiitism 1 month ago+ 0 comments

                  only 4/9 test cases passed , can any one identify bug.

                  include

                  using namespace std; int main() { int arr[6][6] ; int t=6; while(t--) { for(int i=0; i<6; i++) cin>>arr[6-t][i]; } vectorv; int n=6; for(int i= 0; i<4;i++) for(int j= 0; j<4; j++) { int sum=0; sum = (arr[i][j] + arr[i][j+1] + arr[i][j+2] + arr[i+1][j+1] + arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2]); v.push_back(sum); } int max = *max_element(v.begin(), v.end()); cout<

                  0|
                  ParentPermalink
            • typicallucas 1 year ago+ 1 comment

              Hi, you're including a bunch of extraneous libraries. You are just using vector, iostream, and algorithm.

              The rest could be deleted :) Cheers

              1|
              ParentPermalink
              • banerjeeunmesha 1 year ago+ 1 comment

                I didnot include any extraneous libraries, I did my code in c++,kindly help me...thank you for your time and help my code:

                include

                using namespace std; void sum(int[][6]); int main() { int a[6][6]; int i,j; cout<<"enter val\n"; for(i=0;i<6;i++) { for(j=0;j<6;j++) { cin>>a[i][j]; } } sum(a); return 0; } void sum(int a[][6]) { int l=0,m=0; int i,j,max; int sum[4][4]; for(i=0,j=0;i<=3,j<=3;j++) { if(j==3) { sum[l][m]=a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]; i++; j=-1; } else { sum[l][m]=a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]; } m++; if(m==4) { l++; m=0; } } max=sum[0][0]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(sum[i][j]>=max) { max=sum[i][j]; } } } cout<<"max"<

                -1|
                ParentPermalink
                • typicallucas 1 year ago+ 1 comment

                  hi, i think you're more likely to get help if your code is more readable. Wrap your code with three back-ticks and that should help improve the

                  0|
                  ParentPermalink
                  • banerjeeunmesha 1 year ago+ 1 comment

                    include

                    using namespace std; void sum(int[][6]); int main() { int a[6][6]; int i,j; cout<<"enter val\n"; for(i=0;i<6;i++) { for(j=0;j<6;j++) { cin>>a[i][j]; } } sum(a); return 0; } void sum(int a[][6]) { int l=0,m=0; int i,j,max; int sum[4][4]; for(i=0,j=0;i<=3,j<=3;j++) { if(j==3) { sum[l][m]=a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]; i++; j=-1; } else { sum[l][m]=a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j+1]+a[i+2][j]+a[i+2][j+1]+a[i+2][j+2]; } m++; if(m==4) { l++; m=0; } } max=sum[0][0]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(sum[i][j]>=max) { max=sum[i][j]; } } } cout<<"max"<

                    0|
                    ParentPermalink
                    • banerjeeunmesha 1 year ago+ 1 comment

                      how to add back ticks? i am unable to add the pdf file as well plzz help.

                      0|
                      ParentPermalink
                      • typicallucas 1 year ago+ 0 comments
                        [deleted]
                        0|
                        ParentPermalink
            • ramin_shahab 1 year ago+ 0 comments

              :O Are you using all those includes?

              0|
              ParentPermalink
            • arka_cool1996 1 year ago+ 0 comments

              Simple and efficient and also easy to understand . Thank you sir.

              0|
              ParentPermalink
            • arka_cool1996 1 year ago+ 0 comments

              Is there any specific reason why you ran the j loop instead of the i loop first while finding the sum of the hourglass or is it just a matter of choice.

              0|
              ParentPermalink
          • joshknows09 11 months ago+ 0 comments

            Can you go over this a little bit?What are we trying to solve and how?^

            0|
            ParentPermalink
          • as6378320 9 months ago+ 1 comment

            I think python solution is simple and consume less memory space

            print(max([sum(arr[i-1][j-1:j+2] + [arr[i][j]] + arr[i+1][j-1:j+2]) for j in range(1, 5) for i in range(1, 5)]))

            2|
            ParentPermalink
            • timothyrmeehan 8 months ago+ 0 comments

              Nice one liner!

              0|
              ParentPermalink
          • DAMwingtsun 7 months ago+ 0 comments

            Can someone help me with understanding 'i'ths and 'j'ths and a resource to show one how to manipute those for traversing through an array. Like azheruddin617mr1 here with j = jj and jj+3 and jj+1?

            0|
            ParentPermalink
          • Emily1691 5 months ago+ 0 comments

            What language is this for?

            0|
            ParentPermalink
        • AhirJagdeep 1 year ago+ 1 comment

          include

          int main() { int a[6][6],hg[3][3]; int i,j,x,y,sum=0,max=-63; for(i=0;i<6;i++) { for(j=0;j<6;j++) { scanf("%d",&a[i][j]); } }

          for(i=0;i<4;i++)
          {
              for(j=0;j<4;j++)
              {
                  for(x=i;x<i+3;x++)
                  {
                      for(y=j;y<j+3;y++)
                      {
                          if(x==i+1&&y==j)
                          continue;
                          else if(x==i+1&&y==j+2)
                          continue;
                          else hg[x][y]=a[x][y];
                          sum+=hg[x][y];
                      }
                  }
                  if(sum>max)
                  {
                      max=sum;
                  }
          
                  sum=0;
              }
          }
          printf("%d",max);
          return 0;
          

          }

          -2|
          ParentPermalink
          • fooboogoobear 1 year ago+ 0 comments

            Holy for-loops, Batman

            7|
            ParentPermalink
        • AhirJagdeep 1 year ago+ 0 comments
          [deleted]
          -1|
          ParentPermalink
    • nithishjprabhu 2 years ago+ 0 comments

      Can u check this?

      while (true) { if (mainControl + buffer > n + 1) { break; } while (true) { if (ik + buffer > n) { ik = mainControl++; jk = 0; break; } int sum = 0; for (int i = ik; i < ik + 3; i++) { if (jk + buffer > n) { jk = jk + 1; ik++; break; } for (int j = jk; j < jk + 3; j++) { int iStartIndex = ik; int jStartIndex = jk; int i1 = a[i][j]; if (i == iStartIndex || i == iStartIndex + 2) { sum = sum + i1; } else if (i == iStartIndex + 1) { iStartIndex++; jStartIndex++; if (iStartIndex == i && jStartIndex == j) { sum = sum + a[i][j]; } } } }

      0|
      ParentPermalink
    • balajilitsv 1 year ago+ 0 comments

      or initialize it to any value less than -63, because the input values of the array ranges from -9 to +9. So a hour glass can contain a maximum of 7 times -9, which sums up to -63. Any value greater than -64 can be accepted to swap the max variable, right!

      HotIce!

      0|
      ParentPermalink
    • prashantpx 1 year ago+ 0 comments

      Thanks

      0|
      ParentPermalink
    • anantchaturvedi1 12 months ago+ 0 comments

      I did it in Python 3 and I initialized it as None, and put an if condition to check if result_max is none or not

      2|
      ParentPermalink
    • deepakkushwaha61 12 months ago+ 0 comments

      if we dont know the input then there is no chance of getting hourglass

      0|
      ParentPermalink
    • justbecause1337 11 months ago+ 0 comments

      Utilizing the None, nil, or null the abscense of a value is useful for preventing issues like this.

      2|
      ParentPermalink
    • NishthaKalra 11 months ago+ 0 comments

      You can also intialize max value to -Infinity. In Python, you can do that by -float('inf')

      0|
      ParentPermalink
    • shashwatsahai5 4 months ago+ 0 comments

      just to be a little more precise, set the max value to -63 initially because according to the constrains, thats the least value possible

      0|
      ParentPermalink
    • abbng12345 2 months ago+ 0 comments

      wow you easly explain a whole material in one sentence i realy appriciat your performance dog training at home

      0|
      ParentPermalink
    • Paritybit 3 weeks ago+ 0 comments

      Or Min int value. worked

      0|
      ParentPermalink
  • Contest Calendar
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy
  • Request a Feature