算法-奇偶分割数组

时间:2022-07-28
本文章向大家介绍算法-奇偶分割数组,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

奇偶分割数组

难度:简单

描述:

分割一个整数数组,使得奇数在前偶数在后。

样例:

给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。

增加一下难度:

给定乱序数组:[2, 5, 1, 6, 3, 4],返回[1, 3, 5, 2, 4, 6]

思路分析:

排序好的数组:找到奇数进行操作。

乱序的数组:使用sort方法进行排序+提取奇数

代码模板:

js const partitionArray = arr => {};¨G0Gjs const partitionArray = arr => { let num = arr.length - 1; // 其实如果是乱序数组,可以在这里使用sort将数组排序好再走下面那部分也可以 // 倒序遍历 for (let i = num; i >= 0; i--) { if (arr[i] % 2 !== 0) { let item = arr.splice(i, 1); // 将当前值取出来 arr.unshift(item[0]); // 添加到首位 } } return arr; }; console.log('输出', partitionArray([1, 2, 3, 4]));¨G1Gjs const partitionArray = arr => { return arr.sort((a, b) => { if (a % 2 !== 0 && b % 2 !== 0) { // 当两个数都是奇数的情况下 按大小排序 return a - b; } else if (a % 2 === 0 && b % 2 === 0) { // 当两个数都是偶数的情况下也是按大小排序 return a - b; } else if (a % 2 !== 0) { // 当a是奇数 要排在b的前面 return -1; } else if (b % 2 !== 0) { // 当b是奇数 排在a的前面 return 1; } }); }; console.log( '输出', partitionArray([1, 2, 3, 4]), partitionArray([2, 5, 1, 6, 3, 4]) );

鼓励我一下:

觉得还不错的话,给我的项目点个star吧