LeetCode554 Brick Wall 獨立完成第一道中等難度hashtable題 本地IDE執行 陣列輸入 時間 有待優化
阿新 • • 發佈:2018-11-03
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; } }}