分割数组

tobegold574 Lv5

分割数组(easy)

做题过程

哈希表,很直接,但是又用到了不必要的Map.Entry<>Map.entrySet(),其实不用。

算法概述

原题

本题要求为判断数组(偶数长度)是否能被分为两个不含重复元素的数组。用 哈希表 存储每个数字的出现频次即可。

  • 时间复杂度为O(n)
  • 空间复杂度为O(n)

JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public boolean isPossibleToSplit(int[] nums) {
Map<Integer, Integer> count = new HashMap<>();
for (int num : nums) {
count.put(num, count.getOrDefault(num, 0) + 1);
// 这边直接边存边查即可,无需再用一个新的循环遍历
if (count.get(num) > 2) {
return false;
}
}
return true;
}
}

总结

哈希表的操作虽然大抵都清楚,但是如果使代码变得更加优雅还需自我反思与提升。

  • Title: 分割数组
  • Author: tobegold574
  • Created at : 2024-12-28 13:31:29
  • Updated at : 2024-12-28 13:38:38
  • Link: https://tobegold574.me/2024/12/28/分割数组/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments