老规矩,题目链接:https://leetcode-cn.com/problems/can-place-flowers/
这是一道简单题,解题最重要的部分就是抽象,将问题的解抽象为除法运算,求出两个1
之间的0
的个数,-1
后/2
并向下取整就能得到这两个1
之间可以种的花的数目,最后做判断,即为题解。
本人想到两种解法,基本原理类似,如果别的小伙伴还有更好的解决办法或是觉得我的方法不正确,欢迎大家在评论区提出来~
解法1:
export default (arr, n) => {
let cnt = 0;
let max = 0;
let len = arr.length;
// first中保存第一个1出现的下标
let first = arr.indexOf(1);
// last中保存最后一个1出现的下标
let last = arr.lastIndexOf(1);
// 核心算法:返回两个1之间可以种的花的数目
let MAX = (sum) => {
return Math.floor(