关注
分两组g1和g2。从头开始遍历着2n个数字,对于一个数i,我们考虑它可以放在哪组中。有以下两种情况: g1的长度不足n时,可直接把这个数加入g1 对于g2中的下一个位置g2LastIndex,如果abs(i - g1[index]) >= k,那么也可以把i加入g2 如此迭代即可。【但是这个代码只能对30%的样本,应该是哪里出了点疏漏,希望有大佬能指点一下】 let [n, k] = [5,2]; //测试数据
let group1 = [];
let group2 = [];
let result = 0;
function process(g1, g2, currentNum) {
console.log(g1, g2, currentNum)
if (g1.length === n && g2.length === n) result++;
else {
if (g1.length < n) process(g1.concat(currentNum), g2, currentNum + 1);
let g2LastIdx = g2.length ? g2.length : 0;
if (Math.abs(currentNum - g1[g2LastIdx]) >= k) process(g1, g2.concat(currentNum), currentNum + 1)
}
}
process(group1, group2, 1);
print(result*2);
//输出结果的2倍
//因为比如A={1,2},B={3,4}
//那么A={3,4},B={1,2}也是合法的分组方式
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客2025仙途报告 #
4443次浏览 135人参与
# 礼物开箱Plog #
1616次浏览 73人参与
# 2025年终总结 #
177425次浏览 3000人参与
# 工作两年,想和老板谈涨薪怎么说 #
38794次浏览 175人参与
# 你面试体验感最差/最好的公司 #
22242次浏览 365人参与
# 秋招落幕,你是He or Be #
15622次浏览 287人参与
# 一人说一个提前实习的好处 #
14049次浏览 227人参与
# 考公VS就业,你怎么选? #
88107次浏览 497人参与
# 今年你最想重开的一场面试是? #
5685次浏览 75人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
13699次浏览 130人参与
# 重来一次,你会对开始求职的自己说 #
6941次浏览 175人参与
# 找工作,行业重要还是岗位重要? #
85804次浏览 1699人参与
# 实习没事做是福还是祸? #
18816次浏览 272人参与
# 机械制造秋招总结 #
97358次浏览 878人参与
# 职场新人体验 #
156930次浏览 1121人参与
# 工作中听到最受打击的一句话 #
8296次浏览 130人参与
# 团建是“福利”还是是 “渡劫” #
8115次浏览 160人参与
# 反问环节如何提问 #
126456次浏览 2669人参与
# 移动求职进展汇总 #
17920次浏览 143人参与
# 比亚迪线下宣讲会 #
17185次浏览 50人参与
查看5道真题和解析