LeetCode - 412 - FizzBuzz(fizz-buzz)

Create by jsliang on 2019-07-25 15:48:322019-07-25 16:08:25

一 目录

不折腾的前端,和咸鱼有什么区别

| 目录 | | --- | | 一 目录 | | 二 前言 | | 三 解题 | |  3.1 解法 - 暴力破解 | |  3.2 解法 - 奇技淫巧 |

二 前言

  • 难度:简单

  • 涉及知识:无

  • 题目地址:https://leetcode-cn.com/problems/fizz-buzz/

  • 题目内容

写一个程序,输出从 1 到 n 数字的字符串表示。	
1. 如果 n 是3的倍数,输出“Fizz”;	
2. 如果 n 是5的倍数,输出“Buzz”;	
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。	
示例:	
n = 15,	
返回:	
[	
  "1",	
  "2",	
  "Fizz",	
  "4",	
  "Buzz",	
  "Fizz",	
  "7",	
  "8",	
  "Fizz",	
  "Buzz",	
  "11",	
  "Fizz",	
  "13",	
  "14",	
  "FizzBuzz"	
]

三 解题

小伙伴可以先自己在本地尝试解题,再回来看看 jsliang 的解题思路。

3.1 解法 - 暴力破解

  • 解题代码

var fizzBuzz = function(n) {	
  let result = [];	
  for (let i = 1; i <= n; i++) {	
    if (i % 3 === 0 && i % 5 === 0) {	
      result.push('FizzBuzz');	
    } else if (i % 3 === 0) {	
      result.push('Fizz');	
    } else if (i % 5 === 0) {	
      result.push('Buzz');	
    } else {	
      result.push(i + '');	
    }	
  }	
  return result;	
};
  • 执行测试

  1. n: 15

  2. return

[ '1',	
  '2',	
  'Fizz',	
  '4',	
  'Buzz',	
  'Fizz',	
  '7',	
  '8',	
  'Fizz',	
  'Buzz',	
  '11',	
  'Fizz',	
  '13',	
  '14',	
  'FizzBuzz' ]
  • LeetCode Submit

✔ Accepted	
  ✔ 8/8 cases passed (92 ms)	
  ✔ Your runtime beats 76.26 % of javascript submissions	
  ✔ Your memory usage beats 57.05 % of javascript submissions (37.3 MB)
  • 知识点

  1. push(): push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。 push() 详细介绍

  • 解题思路

虽然这是一道 LeetCode 题,但是我觉得这是一道大一作业题,可以说是简单地不能再简单了,完全就是玩了可以丢的那种~

自行解析,不做评论

3.2 解法 - 奇技淫巧

  • 解题代码

var fizzBuzz = function(n) {	
  return Array(n).fill(0).map((_, i) => (i + 1) % 3 === 0? (i + 1) % 5 === 0? 'FizzBuzz': 'Fizz': (i + 1) % 5 === 0? 'Buzz': i + 1 + '');	
};
  • 执行测试

  1. n: 15

  2. return

[ '1',	
  '2',	
  'Fizz',	
  '4',	
  'Buzz',	
  'Fizz',	
  '7',	
  '8',	
  'Fizz',	
  'Buzz',	
  '11',	
  'Fizz',	
  '13',	
  '14',	
  'FizzBuzz' ]
  • LeetCode Submit

✔ Accepted	
  ✔ 8/8 cases passed (92 ms)	
  ✔ Your runtime beats 76.26 % of javascript submissions	
  ✔ Your memory usage beats 30.13 % of javascript submissions (37.4 MB)
  • 知识点

  1. map():遍历数组, item 返回遍历项, index 返回当前索引。 map() 详细介绍

  • 解题思路

有点像是强行压缩成一行,引起极度不适~

业务代码中不要这么写喔~要不然你队友会拍死你的。

这种写法不好维护


不折腾的前端,和咸鱼有什么区别!

640?wx_fmt=jpeg

jsliang 会每天更新一道 LeetCode 题解,从而帮助小伙伴们夯实原生 JS 基础,了解与学习算法与数据结构。

扫描上方二维码,关注 jsliang 的公众号,让我们一起折腾!

640?wx_fmt=png

jsliang 的文档库 由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值