请选择 进入手机版 | 继续访问电脑版

Leetcode 605. 种花问题(Java实现 超详细注释!)

[复制链接]
唐少琼 发表于 2021-1-3 12:12:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Leetcode 605. 种花问题

2021第一道贪心,理清思路就不难,加了详细的注释,方便日后复习,也希望能帮到其他小同伴,如有错误,接待指正!
Java实现:
  1. class Solution {    public boolean canPlaceFlowers(int[] flowerbed, int n) {        // 实在这道题原理比力简朴,题目问我们该花坛能否再种下n朵花,我们转换成贪心的思想,直接求出这个花坛中最多还能种多少花        // 计数还能再种多少花        int nums = 0;        // 由于相邻的地块不能同时种花,我们这里遍历每一个地块        for (int i = 0; i < flowerbed.length; i++){            // 实在大方向上看就两种情况,这块地有花、这块地没花,我们分类讨论            // 如果该地块种了花,那说明下一块地肯定不能种花,我们直接跳到下下块地,由于循环每次都会跳一块,因此我们只需要跳一块即可            if (flowerbed[i] == 1){                i ++;                // 如果这块地没种花呢?由于已经颠末了前面一步,此时有三种情况,第一种前面没有地块,二前面跳了一步,三前面跳了两步                // 没有地块相当于前面没有花,跳一步说明前面一块没有花,跳两步说明前前面有花,但是前面一块没有花,总之前面就是一定没有花                // 那么只要下一块也没有花大概已经是最后一块地块了,就可以直接在这块地种花,种了以后下一块不能种了,直接跳过i += 1;            }else if(i == flowerbed.length - 1 || flowerbed[i + 1] == 0){                nums ++;                i ++;            }        }           // 最后我们看剩余可以种花的地块是否大于或便是n,是就返回true,否就返回false        return nums >= n;    }}
复制代码
来源:https://blog.csdn.net/Println30/article/details/112062025
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )