class Solution(object): def trap(self,nums): leftmosthigh = [0 for i in range(len(nums))] leftmax=0 for i in range(len(nums)): if nums[i] > leftmax: leftmax=nums[i] leftmosthigh[i] = leftmax print leftmosthigh sums=0 rightmax=0 for i in reversed(range(len(nums))): print i if nums[i] > rightmax: rightmax = nums[i] print ‘i is‘,i,‘rightmax is‘,rightmax #current i less than it‘s two side, then it can trap if min(rightmax,leftmosthigh[i] ) > nums[i]: sums+=min(rightmax,leftmosthigh[i])-nums[i] return sums nums= [0,1,0,2,1,0,1,3,2,1,2,1] obj=Solution() rs=obj.trap(nums) print rs
时间: 2024-12-20 00:13:03