巧解Lintcode 3646:计算环形街道上的房屋数量

本题要求在不知道houses数组的情况下,仅使用Street类提供的5个方法计算环形街道上的房屋总数。

解题思路:

  1. 利用Street.getTotal()获取街道房屋总数total
  2. 利用Street.getLeft()获取街道左侧房屋数量left
  3. 根据环形街道特性,右侧房屋数量right = total - left
  4. 返回left + right即为总房屋数量。

Java代码实现:

import java.util.List;

public class Solution {
    /**
     * @param street: a list of Street
     * @return: the sum of all houses
     */
    public int getHouses(List<Street> street) {
        int total = street.get(0).getTotal();
        int left = street.get(0).getLeft();
        int right = total - left;
        return left + right;
    }
}

时间复杂度分析:

由于只调用了常数次Street类的方法,所以时间复杂度为 O(1)。

巧解Lintcode 3646:计算环形街道上的房屋数量(无需houses数组)

原文地址: https://www.cveoy.top/t/topic/fSC7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录