领扣LintCode算法问题答案-358. 树木规划
358. 树木规划
在一条直的马路上,有 n 棵树,每棵树有一个坐标,代表它们距离马路起点的距离。
如果每相邻的两棵树之间的间隔不小于 d,那么我们认为这些树是美观的。
请计算出最少移除多少棵树,可以让这些树变得美观。
样例中,将位置 2 和 6 的树木移走,剩下 [1,3,5],它们是美观的。
样例 1:
输入:
[1,2,3,5,6]
2
输出:
2
public class Solution {
/**
* @param trees: the positions of trees.
* @param d: the minimum beautiful interval.
* @return: the minimum number of trees to remove to make trees beautiful.
*/
public int treePlanning(int[] trees, int d) {
// write your code here.
int min = 0;
int pre = 0;
for (int i = 1; i < trees.length; i++) {
if (trees[i] - trees[pre] < d) {
min++;
} else {
pre = i;
}
}
return min;
}
}
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。