Difference between revisions of "Talk:TADM2E 3.28"

From Algorithm Wiki
Jump to: navigation, search
(Perform in single pass)
 
m (Single Pass in Python)
Line 1: Line 1:
 
I think this can be done in a single loop essentially taking two passes at once.  Here is a Python snippet.
 
I think this can be done in a single loop essentially taking two passes at once.  Here is a Python snippet.
  <nowiki>
+
  <source lang="Python">
 
# O( n) - len( input_values)
 
# O( n) - len( input_values)
 
length = len( input_values) # the length of the input values
 
length = len( input_values) # the length of the input values
Line 16: Line 16:
 
     backIndex -= 1
 
     backIndex -= 1
 
     answers[ backIndex] *= backProduct
 
     answers[ backIndex] *= backProduct
  </nowiki>
+
  </source>

Revision as of 12:09, 2 February 2015

I think this can be done in a single loop essentially taking two passes at once. Here is a Python snippet.

# O( n) - len( input_values)
length = len( input_values)		# the length of the input values
answers = [1]*length			# output values
frontIndex = 0				# the index at which we have calculated the product of all preceding indexes
frontProduct = 1			# the product of values preceding the front index
backProduct = 1				# the product of values following the back index
limit = length-1
backIndex = limit			# the index at which we have calculated the product of all following values
while( frontIndex < limit):
    frontProduct *= input_values[ frontIndex]
    backProduct *= input_values[ backIndex]
    frontIndex += 1
    answers[ frontIndex] *= frontProduct
    backIndex -= 1
    answers[ backIndex] *= backProduct