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

目录
相关文章
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
681 2
|
Web App开发 分布式计算 小程序
什么是云计算,云计算在未来有什么作用?
简要介绍云计算及云计算作用
8540 0
|
7月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
436 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
11月前
|
机器学习/深度学习 人工智能 机器人
魔搭社区模型速递(5.11-5.17)
🙋魔搭ModelScope本期社区进展:📟1656个模型,151个数据集,645个创新应用,📄 9 篇内容
470 11
|
传感器 人工智能 Java
你知道数字电路的基础逻辑门电路吗,来拿下
基础逻辑门电路是数字电路的核心单元,包括与门、或门、非门、与非门、或非门、异或门和同或门。每种门电路执行特定的逻辑运算,产生相应的输出信号。例如,与门仅在所有输入为高电平时输出高电平;或门只要有一个输入为高电平就输出高电平;非门则对输入信号取反。这些门电路广泛应用于计算机CPU、报警系统、数据校验和同步电路中,是构建复杂数字系统的基石。
1752 0
你知道数字电路的基础逻辑门电路吗,来拿下
|
JavaScript 前端开发
vue3 保存二维码
vue3 保存二维码
601 0
|
机器学习/深度学习 测试技术 持续交付
ONNX 与持续集成/持续部署 (CI/CD):构建可信赖的 ML 生命周期管理
【8月更文第27天】随着机器学习 (ML) 模型的广泛应用,确保模型的正确性、稳定性和可追踪性变得尤为重要。持续集成/持续部署 (CI/CD) 是软件开发中的重要实践,旨在通过自动化测试和部署流程来提高软件质量和开发效率。将 ONNX 集成到 CI/CD 流程中可以实现模型版本管理、自动化测试和部署,从而构建一个可信赖的机器学习生命周期管理系统。本文将探讨如何将 ONNX 模型与 CI/CD 流程结合,以实现模型的自动化管理。
417 5
|
网络协议 网络架构
|
存储 NoSQL 关系型数据库
|
XML 算法 Java
Android 开发人脸识别之自动识别验证码功能讲解及实现(超详细 附源码)
Android 开发人脸识别之自动识别验证码功能讲解及实现(超详细 附源码)
911 0

热门文章

最新文章

下一篇
开通oss服务