这道题第一反应就是暴力解法,从左往右遍历两个for循环,这种情况的时间复杂度是O(N^2),明显不是个好办法。用左右乘积列表来表示是个非常好非常巧妙的办法!每个元素都设定一个左右的乘积数组,最后答案就是将这两个值相乘即可。
上面的空间复杂度是O(N),但其实空间是可以省略下来的,只要使用两个循环,先从左往右乘一遍,再往右从左乘一遍(右往左的时候用一个值保存右往左的乘积和)。这种方法很巧妙。
这道题第一反应就是暴力解法,从左往右遍历两个for循环,这种情况的时间复杂度是O(N^2),明显不是个好办法。用左右乘积列表来表示是个非常好非常巧妙的办法!每个元素都设定一个左右的乘积数组,最后答案就是将这两个值相乘即可。
上面的空间复杂度是O(N),但其实空间是可以省略下来的,只要使用两个循环,先从左往右乘一遍,再往右从左乘一遍(右往左的时候用一个值保存右往左的乘积和)。这种方法很巧妙。