当前位置: 首页 > news >正文

100243. 将元素分配到两个数组中 I

说在前面

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

题目描述

给你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。

你需要通过 n 次操作,将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中,将 nums[1] 追加到 arr1 。在第二次操作中,将 nums[2] 追加到 arr2 。之后,在第 i 次操作中:

  • 如果 arr1 的最后一个元素 大于 arr2 的最后一个元素,就将 nums[i] 追加到 arr1 。否则,将 nums[i] 追加到 arr2 。

通过连接数组 arr1 和 arr2 形成数组 result 。例如,如果 arr1 == [1,2,3] 且 arr2 == [4,5,6] ,那么 result = [1,2,3,4,5,6] 。

返回数组 result 。

示例 1:

输入: nums = [2,1,3]
输出: [2,3,1]
解释: 在前两次操作后,arr1 = [2] ,arr2 = [1] 。
在第 3 次操作中,由于 arr1 的最后一个元素大于 arr2 的最后一个元素(2 > 1),将 nums[3] 追加到 arr1 。
3 次操作后,arr1 = [2,3] ,arr2 = [1] 。
因此,连接形成的数组 result 是 [2,3,1] 。

示例 2:

输入: nums = [5,4,3,8]
输出: [5,3,4,8]
解释: 在前两次操作后,arr1 = [5] ,arr2 = [4] 。
在第 3 次操作中,由于 arr1 的最后一个元素大于 arr2 的最后一个元素(5 > 4),将 nums[3] 追加到 arr1 ,因此 arr1 变为 [5,3] 。
在第 4 次操作中,由于 arr2 的最后一个元素大于 arr1 的最后一个元素(4 > 3),将 nums[4] 追加到 arr2 ,因此 arr2 变为 [4,8] 。
4 次操作后,arr1 = [5,3] ,arr2 = [4,8] 。
因此,连接形成的数组 result 是 [5,3,4,8] 。

提示:

  • 3 <= n <= 50
  • 1 <= nums[i] <= 100
  • nums中的所有元素都互不相同。

解题思路

这是一道比较简单的题目,直接根据题目遍历进行模拟即可,完整代码如下:

AC代码

/*** @param {number[]} nums* @return {number[]}*/
var resultArray = function(nums) {let a = [nums[0]], b = [nums[1]]for(let i = 2; i < nums.length; i++){if(a.at(-1) > b.at(-1)) a.push(nums[i])else b.push(nums[i])}return a.concat(b)
};

公众号

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

说在后面

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

相关文章:

  • 经典的算法面试题(1)
  • C++从零开始的打怪升级之路(day41)
  • 算法知识(java)随笔
  • 知识图谱1——neo4j
  • 边缘计算网关的重要作用-天拓四方
  • redis一些概念知识
  • PostgreSQL对已有表增加自增序列
  • WPF应用程序使用MVVM模式
  • etcd入门-(1)安装篇
  • Android 11.0 内置google tts语音包功能实现
  • win环境nginx实战配置详解
  • kubeadm部署K8S
  • 2024年【N1叉车司机】考试试卷及N1叉车司机证考试
  • [技巧]Arcgis之图斑四至点批量计算
  • TSINGSEE青犀AI智能分析网关V4智慧油田安全生产监管方案
  • 【React系列】如何构建React应用程序
  • ES6系统学习----从Apollo Client看解构赋值
  • export和import的用法总结
  • laravel 用artisan创建自己的模板
  • Nodejs和JavaWeb协助开发
  • Python十分钟制作属于你自己的个性logo
  • Python学习之路16-使用API
  • underscore源码剖析之整体架构
  • XForms - 更强大的Form
  • Zepto.js源码学习之二
  • 从0实现一个tiny react(三)生命周期
  • 大快搜索数据爬虫技术实例安装教学篇
  • 构建二叉树进行数值数组的去重及优化
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 前端js -- this指向总结。
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​io --- 处理流的核心工具​
  • ​力扣解法汇总946-验证栈序列
  • #define 用法
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (一一四)第九章编程练习
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)程序员疫苗:代码注入
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .NET 4.0中的泛型协变和反变
  • .net CHARTING图表控件下载地址
  • .NET Core 版本不支持的问题
  • .net 获取url的方法
  • .NetCore项目nginx发布
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .stream().map与.stream().flatMap的使用
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • ::前边啥也没有
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @Valid和@NotNull字段校验使用
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例