Hướng dẫn growth in 2 dimensions hackerrank c++ - tăng trưởng theo 2 chiều hackerrank c ++

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 1785 Thảo luận, bởi:

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

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

    Nhập toán

    Nhập hệ điều hành

    Nhập ngẫu nhiên

    Nhập RE

    nhập khẩu sys

    def get_hourglass_sum [AR, R, C]:

    sum = 0
    
    for ri in range[r,r+3]:
    
        for ci in range[c,c+3]:
    
            sum+=ar[ri][ci]
    
    sum = sum - ar[r+1][c] - ar[r+1][c+2]
    
    return sum
    

    Nếu name == 'chính':name == 'main':

    arr = []
    max_sum = -1000
    
    for _ in range[6]:
        arr.append[list[map[int, input[].rstrip[].split[]]]]
    
    for r in range[len[arr]-2]:
        for c in range[len[arr[r]]-2]:
            new_sum = get_hourglass_sum[arr,r,c]
            if new_sum > max_sum:
                max_sum = new_sum
    
    print[max_sum]
    

  • 6 ngày 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[]]]]
        maxim = - 100   
        for i in range[1,5]:
            for j in range[1,5]:
                suma =  arr[i-1][j-1] + arr[i-1][j] + arr[i-1][j+1] + arr[i][j]+arr[i+1][j-1]+arr[i+1][j]+arr[i+1][j+1]
                if suma>maxim:
                    maxim = suma              
        print[maxim]
    

  • 7 ngày 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]]]]
    

  • 1 tuần 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 

Bài Viết Liên Quan

Chủ Đề