Redian新闻
>
请教L家新面经题,种花
avatar
请教L家新面经题,种花# JobHunting - 待字闺中
y*e
1
题目从一亩看来的:
public boolean canPlaceFlowers(List flowerbed, int numberToPlace)
如果flowerbed当中为true,说明已经栽过花了,附近两个不能再栽花。numberToPlace
代表想再栽多少花到flowerbed里。让return是不是还能栽那么多谢花进去。.
这个应该是说如果flowerbed是true false false false false, 那么在Index = 3种一朵
这题是不是用greedy解就行啊?看到一个可以种花的spot就种, 然后decrement
numberToPlace, 如果到最后numberToPlace > 0, 那就不能种。。。
还是需要用DP啊?来一个dp(startPos, flowerLeft), 每一步选择种或者不种?
avatar
d*c
2
这个不就是bad neighbor的变种吗?
比bad neighbor还要简单一点。

numberToPlace
一朵

【在 y*****e 的大作中提到】
: 题目从一亩看来的:
: public boolean canPlaceFlowers(List flowerbed, int numberToPlace)
: 如果flowerbed当中为true,说明已经栽过花了,附近两个不能再栽花。numberToPlace
: 代表想再栽多少花到flowerbed里。让return是不是还能栽那么多谢花进去。.
: 这个应该是说如果flowerbed是true false false false false, 那么在Index = 3种一朵
: 这题是不是用greedy解就行啊?看到一个可以种花的spot就种, 然后decrement
: numberToPlace, 如果到最后numberToPlace > 0, 那就不能种。。。
: 还是需要用DP啊?来一个dp(startPos, flowerLeft), 每一步选择种或者不种?

avatar
i*h
3
bad neighbor是什么题?有link不?

【在 d*****c 的大作中提到】
: 这个不就是bad neighbor的变种吗?
: 比bad neighbor还要简单一点。
:
: numberToPlace
: 一朵

avatar
h*o
5
就是greedy 这样吧,能种就种,不能种往下找,没感觉有什么tricky的地方

numberToPlace
一朵

【在 y*****e 的大作中提到】
: 题目从一亩看来的:
: public boolean canPlaceFlowers(List flowerbed, int numberToPlace)
: 如果flowerbed当中为true,说明已经栽过花了,附近两个不能再栽花。numberToPlace
: 代表想再栽多少花到flowerbed里。让return是不是还能栽那么多谢花进去。.
: 这个应该是说如果flowerbed是true false false false false, 那么在Index = 3种一朵
: 这题是不是用greedy解就行啊?看到一个可以种花的spot就种, 然后decrement
: numberToPlace, 如果到最后numberToPlace > 0, 那就不能种。。。
: 还是需要用DP啊?来一个dp(startPos, flowerLeft), 每一步选择种或者不种?

avatar
y*e
7
你说的是house robber吧。。。那个是求max,应该上DP的,这个问题问can/can't, 我
觉得用greedy就可以。。不知思路对不对,所以来问问大家。。。

【在 d*****c 的大作中提到】
: 这个不就是bad neighbor的变种吗?
: 比bad neighbor还要简单一点。
:
: numberToPlace
: 一朵

avatar
i*h
8
用greedy就可以了

【在 y*****e 的大作中提到】
: 你说的是house robber吧。。。那个是求max,应该上DP的,这个问题问can/can't, 我
: 觉得用greedy就可以。。不知思路对不对,所以来问问大家。。。

avatar
b*i
9
感觉greedy是对的,推理如下:
1. 原始的flowerbed总可以分成一些可以种植的连续的0的区域,比如
[1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0]
这个里面就有四片连续的0的区域可以种植: [0], [0], [0 0 0], [0]
这些是去掉了1旁边的0的。
2. 在连续的0的区域里面种,greedy就是最优的。

【在 y*****e 的大作中提到】
: 你说的是house robber吧。。。那个是求max,应该上DP的,这个问题问can/can't, 我
: 觉得用greedy就可以。。不知思路对不对,所以来问问大家。。。

avatar
z*m
10
我的想法是先用DP求给定长度下,包含最多的1的序列such that 没有相邻的1。
然后看给定的flower bed里面的1是不是多余求出来的的最优值(最多的1),如果没有就
说明可以再种,否则就不能再种
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。