关注
分两组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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
16182次浏览 183人参与
# 上班到公司第一件事做什么? #
110745次浏览 757人参与
# 你今年做了几份实习? #
10863次浏览 159人参与
# 工作两年想退休了 #
204819次浏览 1815人参与
# 一上班就想____,这正常吗? #
5950次浏览 104人参与
# 运营面经 #
146247次浏览 1323人参与
# 参加过提前批的机械人,你们还参加秋招么 #
103939次浏览 1641人参与
# 如果公司降薪,你会跳槽吗? #
111909次浏览 722人参与
# 网易求职进展汇总 #
169494次浏览 1414人参与
# 四大天坑是哪四家? #
91610次浏览 231人参与
# 大厂面试初体验 #
83989次浏览 385人参与
# 什么样的公司千万别去 #
28451次浏览 151人参与
# 通信/硬件公司求职体验 #
178752次浏览 1025人参与
# 金三银四,你有感觉到吗 #
663455次浏览 6032人参与
# 大学最后一个寒假,我想…… #
72570次浏览 727人参与
# 大家每天通勤多久? #
64712次浏览 415人参与
# 用一句话形容你的团队氛围 #
29289次浏览 248人参与
# 面试尴尬现场 #
206172次浏览 823人参与
# 业务面应该做哪些准备 #
79361次浏览 813人参与
# 春招你拿到offer了吗 #
762632次浏览 9777人参与