Hướng dẫn growth in 2 dimensions hackerrank solution in python - giải pháp hackerrank tăng trưởng trong 2 chiều trong python

Tôi đã thực hiện một đánh giá cho phỏng vấn xin việc. Một trong 3 vấn đề mà tôi phải giải quyết trong một giờ là tìm ra giá trị tối đa trong một lưới nơi bạn đi qua nó và thêm 1 vào các yếu tố dựa trên các tọa độ được đưa ra. Tôi đã dành một chút thời gian cho vấn đề thứ hai và chỉ kết thúc với khoảng 20 phút cho lần này. Tôi đã không hoàn thành nó kịp thời nên nó làm phiền tôi.

Tôi chỉ muốn đảm bảo rằng giải pháp cho vấn đề vì tôi nhớ nó được tối ưu hóa.

Đầu vào là một mảng chuỗi gồm hai giá trị INT và kích thước của lưới.

Để minh họa, nếu các tọa độ được đưa ra là [3,2] [2,2] [1,3] thì

[1][1][0]     
[1][1][0]     
[1][1][0]     

[1][1][0]     
[2][2][0]     
[2][2][0]     

[1][1][0]
[2][2][0]
[3][3][1]

và như thế...

Tôi tin rằng kết quả cần thiết là giá trị tối đa không có trong [1,1] và số lần nó tồn tại trong lưới.

Đây là giải pháp tôi đưa ra. Có cách nào để tối ưu hóa nó không?

public static List twoDimensions[String[] coordinates, int n] {

    List maxAndCount = new ArrayList[];
    int[][] grid = new int[n][n];
    int arrLength = coordinates.length;
    int max = Integer.MIN_VALUE;
    int count = 1;

    for [int i = 0; i < arrLength; i++] {

        String[] coors = coordinates[i].split[" "];
        int row = Integer.parseInt[coors[0]];
        int column = Integer.parseInt[coors[1]];

        for [int j = 0; j < row; j++] {
            for [int k = 0; k < column; k++] {

                grid[j][k] += 1;
                System.out.println["grid [" + j + "," + k + "]: " + grid[j][k]];

                if [![j == 0 & k == 0] && grid[j][k] > max] {

                    max = grid[j][k];
                    count = 1;

                } else if [grid[j][k] == max] {

                    count++;

                }
            }
        }
    }

    maxAndCount.add[max];
    maxAndCount.add[count];

    return maxAndCount;
}

public static void main[String[] args] {

    String[] coors = { "1 3", "2 4", "4 1", "3 2" };
    System.out.println["The Max and count Are:" + twoDimensions[coors, 4].toString[]];
}

Sắp xếp 1783 thảo luận, bởi:

Vui lòng đăng nhập để đăng bình luận

  • 14 giờ trước+ 0 bình luận+ 0 comments

    if __name__ == '__main__':
        arr = []
        for _ in range[6]:
            arr.append[list[map[int, input[].rstrip[].split[]]]]
        def sub_arr_sum[arr]:
            return sum[arr[0]] + arr[1][1] + sum[arr[2]]
        print[max[[sub_arr_sum[[row[j: j+3] for row in arr[i: i+3]]] for j in range[4] for i in range[4]]]]
    

  • 4 ngày trước+ 0 bình luận+ 0 comments

    private static int maximumHourGlass[List arr] {
            List maxes = new ArrayList[];
            int looper = 1;
            int rowp = 0;
            int colp = 0;
            int sum = 0;
            for[int i = 0; i  Initialize with 0 only if your matrix elements are positive
    
        # Here loop runs [R-2]*[C-2] times considering different top left cells
        for i in range[0, 4]:
            for j in range[0, 4]:             
                # Considering arr[i][j] as top left cell of hour glass.
                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]]
                #If previous sum is less then current sum then
                    # update new sum in max_sum
                if[SUM > max_sum]:
                    max_sum = SUM
                else:
                    continue
        return print[max_sum]
    MaxSum[arr]
    

Làm thế nào để bạn làm một hai

MYLIST = [0,1,2,3,4,5,6,7,8,8]; Đối với Index in Len [Mylist]: Mylist [index] = 0 # SET phần tử ở "INDEX" thành 0. Đối với danh sách hai chiều, để tham chiếu mọi phần tử, chúng ta phải sử dụng hai vòng lặp lồng nhau. Điều này cung cấp cho chúng tôi một biến bộ đếm cho mỗi cột và mỗi hàng trong ma trận.in order to reference every element, we must use two nested loops. This gives us a counter variable for every column and every row in the matrix.

Làm thế nào để bạn đi qua một mảng 2D trong Python?

Đi qua trong một mảng 2D trong Python có thể được thực hiện bằng cách sử dụng A cho một vòng lặp.Chúng ta có thể lặp qua mảng bên ngoài trước, và sau đó tại mỗi phần tử của mảng bên ngoài, chúng ta có một mảng khác, mảng bên trong của chúng ta chứa các phần tử.Vì vậy, đối với mỗi mảng bên trong, chúng tôi chạy một vòng lặp để vượt qua các yếu tố của nó.using a for a loop. We can iterate through the outer array first, and then at each element of the outer array, we have another array, our inner array containing the elements. So for each inner array, we run a loop to traverse its elements.

Một mảng 2D trong Python là gì?

Mảng hai chiều là một mảng trong một mảng.Nó là một mảng các mảng.Trong loại mảng này, vị trí của một phần tử dữ liệu được giới thiệu bởi hai chỉ số thay vì một.Vì vậy, nó đại diện cho một bảng với các hàng một dcolumns dữ liệu.

Làm thế nào để bạn tạo một mảng với hai chiều?

Chúng ta có thể khai báo một mảng số nguyên hai chiều nói 'x' có kích thước 10,20 là: int x [10] [20];Các phần tử trong các mảng hai chiều thường được gọi bởi x [i] [j] trong đó tôi là số hàng và 'j' là số cột.int x[10][20]; Elements in two-dimensional arrays are commonly referred to by x[i][j] where i is the row number and 'j' is the column number.

Chủ Đề