博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
75. 颜色分类
阅读量:5911 次
发布时间:2019-06-19

本文共 1604 字,大约阅读时间需要 5 分钟。

1// 整数 0、 1 和 2 分别表示红色、白色和蓝色  2/**  3 * @param {number[]} nums  4 * @return {void} Do not return anything, modify nums in-place instead.  5 */  6var sortColors = function(nums) {
7    let red = 0, white = 0, blue = 0; 8    nums.forEach(el => {
9        if(el === 0) {
10            red++ 11        } else if(el === 1) {
12            white++ 13        } else {
14            blue++ 15        } 16    }); 17 18    for (let i = 0, l = nums.length; i < l; i++) {
19        if(i < red) {
20            nums[i] = 0; 21        } else if (i < red + white) {
22            nums[i] = 1; 23        } else {
24            nums[i] = 2; 25        } 26    } 27 28    return nums; 29}; 30 31// 0,1,2 排序。一次遍历,如果是0,则移动到表头,如果是2,则移动到表尾,不用考虑1 32let sortColors1 = function(nums) {
33    for (let i = 0, j = 0, k = nums.length - 1; i <= k; i++) {
34        if (nums[i] === 0) {
35            [nums[i], nums[j++]] = [nums[j], nums[i]]; 36        } else if (nums[i] === 2) {
37            [nums[k--], nums[i--]] = [nums[i], nums[k]]; 38        } 39    } 40}; 41 42// 不需要额外空间 43var sortColors2 = function(nums) {
44    for(var i=0, l = nums.length; i < l; i++) {
45        if(nums[i] === 0) {
46            nums.splice(i,1); 47            nums.unshift(0); 48        } else if(nums[i] === 2) {
49            nums.splice(i,1); 50            nums.push(2); 51            l--; 52            i--; 53        } 54    } 55 56    return nums; 57}; 58 59ensureEqual(sortColors([2,0,2,1,1,0]), [0,0,1,1,2,2], 'test 1');

转载于:https://www.cnblogs.com/rencoo/p/10137982.html

你可能感兴趣的文章
ucenter1.5通讯过程分析(转载)
查看>>
js和html5实现画板
查看>>
浏览器中可以访问,但是git命令、go get命令使用时却无法连接
查看>>
Apache Spark源码走读之7 -- Standalone部署方式分析
查看>>
如何避免重构带来的危险
查看>>
小程序生命周期
查看>>
有序的双链表
查看>>
MSSQLServer的备份与还原
查看>>
Eclipse导入的项目中发现包的形式变成了文件夹的形式,需要将文件夹的形式变成包...
查看>>
使用MySQL yum源安装MySQL
查看>>
iOS8中使用CoreLocation定位
查看>>
R语言处理Time series
查看>>
mvn package时设置了maven.test.skip=true依旧执行单元测试
查看>>
Java学习笔记(一)背景知识
查看>>
PAT 1118 Birds in Forest [一般]
查看>>
Adapting to views using css or js
查看>>
020PHP基础知识——函数(三)
查看>>
构造函数&&继承8.1
查看>>
Codeforces 923 A. Primal Sport
查看>>
selenium 关于富文本的处理
查看>>