美文网首页
leetcode605题种花问题的两种方法

leetcode605题种花问题的两种方法

作者: infi_ | 来源:发表于2019-05-13 16:16 被阅读0次
20171003223346_2BnNe.jpeg

假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。

示例 1:

输入: flowerbed = [1,0,0,0,1], n = 1
输出: True
示例 2:

输入: flowerbed = [1,0,0,0,1], n = 2
输出: False
注意:

数组内已种好的花不会违反种植规则。
输入的数组长度范围为 [1, 20000]。
n 是非负整数,且不会超过输入数组的大小。

下面是答案 let1 和let2 各是一种方法 一种用了正则简单了很多

var n=3
var array=[1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1]

function let1(array,n){
     var code=[]
   for(var i=0;i<array.length;i++){
      if(array[i]===0&array[i-1]===0&array[i+1]===0){
         code.push(array[i])
         i=i+2
      }
   }
   if(array[0]===0&array[1]===0&array[2]===1){ //这两种是判断边界问题
     code.push(0)
   }
   if(array[length-1]===0&array[length-2]===0&array[length-3]===1){//这两种是判断边界问题
     code.push(0)
   }

   if(code.length>=n){return true}else{
     return false
   }
}
console.log(let1(array,n))
function let2(array,n){
  var result=array.join("")
  result=result.match(/0{3}/g)
  if(array[0]===0&array[1]===0&array[2]===1){
     result.push(0)
   }
   if(array[length-1]===0&array[length-2]===0&array[length-3]===1){
     result.push(0)
   }                                                                                  
  if(n<=result.length){return true}else{
    return false
  }
}
console.log(let2(array,3))

相关文章

  • leetcode605题种花问题的两种方法

    假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者...

  • LeetCode刷题-种花问题

    前言说明 算法学习,日常刷题记录。 题目连接 种花问题[https://leetcode-cn.com/probl...

  • 两种花

    没有期望,只是每天看它成长。它发出了一个个嫩芽,慢慢长大,有的丫枝朝天欢歌,有些缓缓下垂,像一串串风铃,别有风味。...

  • 两种花

    放假回家了,在家带侄女儿,抽时间画。

  • 两种花

    原创淡定 一、茉莉花 枝叶攀出墙 花含苞欲放 庭院深深藏 飘来阵阵香 二、月季花 阳光雨露强 心情就是爽 花开香艳...

  • Java 算法 - Kth Largest Element in

    题意 样例 1. 解题思路   这道题是一道非常典型的Top k问题,通常来说,Top k问题有两种比较通用的方法...

  • 算法-字符串之全排列

    字符串的全排列是字符串类的算法题的一个考察点,属于普通问题,它有两种实现方法,递归算法和非递归算法,非递归的方法要...

  • 闭包_定时器_BOM

    题目1: 下面的代码输出多少?修改代码让fnArr[i]() 输出 i。使用两种以上的方法 方法一: 方法二: 题...

  • 共同祝福最美“彩虹花”

    在网上看到过一对夫妻的有趣对话: 妻子:老公,我喜欢两种花。 老公:哪两种花? 妻子:有钱花,随便花。 老公:亲爱...

  • MySql存储过程的创建以及Mybatis的调用

    记录以下遇到的一些问题: 问题1:如何创建一个存储过程?有两种方法 问题2:如何调用存储过程?有两种方法 使用实体...

网友评论

      本文标题:leetcode605题种花问题的两种方法

      本文链接:https://www.haomeiwen.com/subject/klkraqtx.html