1. 程式人生 > >LeetCode554 Brick Wall 獨立完成第一道中等難度hashtable題 本地IDE執行 陣列輸入 時間 有待優化

LeetCode554 Brick Wall 獨立完成第一道中等難度hashtable題 本地IDE執行 陣列輸入 時間 有待優化

package leetCode;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class LeetCode554 {
public static void main(String[] args) {
    List<Integer> list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(2);
    list1.add(1);

    List<Integer> list2 = new ArrayList<>();
    list2.add(3);
    list2.add(1);
    list2.add(2);

    List<Integer> list3 = new ArrayList<>();
    list3.add(1);
    list3.add(3);
    list3.add(2);

    List<Integer> list4 = new ArrayList<>();
    list4.add(2);
    list4.add(4);
    List<Integer> list5 = new ArrayList<>();
    list5.add(3);
    list5.add(1);
    list5.add(2);
    List<Integer> list6 = new ArrayList<>();
    list6.add(1);
    list6.add(3);
    list6.add(1);
    list6.add(1);

    List<List<Integer>> list = new ArrayList<List<Integer>>();
    list.add(list1);
    list.add(list2);
    list.add(list3);
    list.add(list4);
    list.add(list5);
    list.add(list6);
    System.out.println(list);

    LeetCode554 leet554 = new LeetCode554();
    Solution solution = leet554.new Solution();
    int i = solution.leastBricks(list);
    System.out.println(i);


}

class Solution {

    public int leastBricks(List<List<Integer>> wall) {
        Map<Integer, Integer> map = new HashMap<>();
        List<Integer> listsum = new ArrayList<>();
        int count = 0;
        for (int x = 0; x < wall.size(); x++) {
            if (wall.get(x).size() == 1)
                count++;
        }
        if (count == wall.size())
            return count;


        for (int i = 0; i < wall.size(); i++) {
            int sum = 0;
            List<Integer> list = wall.get(i);
            for (int j = 0; j < list.size() - 1; j++) {
                sum = sum + list.get(j);
                Integer value1 = map.put(sum, map.getOrDefault(sum, 0) + 1);
                listsum.add(sum);
            }

        }
        int m = 0;
        int n = 0;

        for (int i = 1; i < listsum.size(); i++) {
            if (m < map.get(listsum.get(i))) {

                m = map.get(listsum.get(i));
            }

        }
        System.out.println(m + "\t555");
        n = wall.size() - m;


        return n;
    }
}}

在這裡插入圖片描述

在這裡插入圖片描述