【算法题】打印任务排序(js)
2023-12-14 17:45:05
输入: 1,2,2
输出:2,0,1
说明:队列头部任务的优先级为1,被移到队列尾部;接着顺序打印两个优先级为2的任务,故其序号分别为0和1;最后打印剩下的优先级为1的任务,其序号为2
解法:
const str = "9,3,5";
const str1 = "1,2,2";
function solution(str) {
const arr = str.split(",");
const queen = arr.map((item, index) => {
return {
value: item,
index: index,
};
});
const recordList = [];
let outIndex = 0;
while (queen.length) {
let { value, index } = queen.shift();
if (value >= Math.max(...queen.map((item) => item.value))) {
recordList.push({
value,
outIndex: outIndex++,
index,
});
} else {
queen.push({
value,
index,
});
}
}
return recordList
.sort((a, b) => a.index - b.index)
.map((item) => item.outIndex)
.join(",");
}
console.log(solution(str1));
/*
9,3,5 = > 0,2,1
1,2,2 => 2,0,1
*/
文章来源:https://blog.csdn.net/qq_43682422/article/details/134995522
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!