100224. 分割数组

简介: 100224. 分割数组

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给你一个长度为 偶数 的整数数组 nums 。你需要将这个数组分割成 nums1nums2 两部分,要求:

  • nums1.length == nums2.length == nums.length / 2
  • nums1 应包含 互不相同 ****的元素。
  • nums2也应包含 互不相同 的元素。

如果能够分割数组就返回 true ,否则返回 false

示例 1:

输入: nums = [1,1,2,2,3,4]
输出: true
解释: 分割 nums 的可行方案之一是 nums1 = [1,2,3] 和 nums2 = [1,2,4] 。

示例 2:

输入: nums = [1,1,1,1]
输出: false
解释: 分割 nums 的唯一可行方案是 nums1 = [1,1] 和 nums2 = [1,1] 。但 nums1 和 nums2 都不是由互不相同的元素构成。因此,返回 false 。

提示:

  • 1 <= nums.length <= 100
  • nums.length % 2 == 0
  • 1 <= nums[i] <= 100

解题思路

题目的意思是要我们将原数组分成两个新的数组,并且两个新的数组的长度相等,切各数组中的元素不能有相同的,这也就是说原数组的不能有重复个数大于2个以上的元素,否则我们便无法分割成满足要求的两个新数组了,所以我们直接遍历原数组,计算原数组中每一个元素出现的次数,如果元素出现次数大于2的话则返回false,具体代码如下:

AC代码

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var isPossibleToSplit = function (nums) {
  const map = {};
  for (const num of nums) {
    map[num] = (map[num] || 0) + 1;
    if (map[num] > 2) return false;
  }
  return true;
};

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
2月前
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
|
10月前
|
机器学习/深度学习 监控 TensorFlow
数据分割
在机器学习和数据分析中,数据分割是指将可用数据集划分为训练集、验证集和测试集等子集的过程。这种分割的目的是为了评估和验证机器学习模型的性能,并对其进行调优和泛化能力的评估。下面我将解释为什么要进行数据分割,以及如何进行数据分割,并提供一个简单的示例。
208 0
|
2月前
|
算法 测试技术 编译器
【算法 | 实验18】在字符矩阵中查找给定字符串的所有匹配项
题目描述 题目 在字符矩阵中查找给定字符串的所有匹配项 给定一个M×N字符矩阵,以及一个字符串S,找到在矩阵中所有可能的连续字符组成的S的次数。所谓的连续字符,是指一个字符可以和位于其上下左右,左上左下,右上右下8个方向的字符组成字符串。用回溯法求解。
50 1
|
7月前
|
算法 测试技术 C++
C++算法:分割回文串
C++算法:分割回文串
|
2月前
|
Java
leetcode-416. 分割等和子集
leetcode-416. 分割等和子集
15 0
|
2月前
|
人工智能 算法 数据可视化
【算法训练-数组 五】【数组组合】:下一个排列
【算法训练-数组 五】【数组组合】:下一个排列
30 0
|
12月前
|
存储 C语言 C++
【前缀和】303. 区域和检索 - 数组不可变
【前缀和】303. 区域和检索 - 数组不可变
41 0
|
存储 Python
Python实现划分数组为连续数字的集合
Python实现划分数组为连续数字的集合
86 0
|
安全 算法 索引
对字符串进行分割并且补位的算法解析
重点掌握StringBuilder和StringBuffer和String的区别
对字符串进行分割并且补位的算法解析
1221. 分割平衡字符串
平衡字符串 中,'L' 和 'R' 字符的数量是相同的。 给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足: 每个子字符串都是平衡字符串。 返回可以通过分割得到的平衡字符串的 最大数量 。
62 0

热门文章

最新文章