new_contents: # Time:  O(n^2)
  # Space: O(1)
  
  # Given an array consists of non-negative integers,
  # your task is to count the number of triplets chosen
  # from the array that can make triangles
  # if we take them as side lengths of a triangle.
  #
  # Example 1:
  # Input: [2,2,3,4]
  # Output: 3
  # Explanation:
  # Valid combinations are: 
  # 2,3,4 (using the first 2)
  # 2,3,4 (using the second 2)
  # 2,2,3
  # Note:
  # The length of the given array won't exceed 1000.
  # The integers in the given array are in the range of [0, 1000].
  
  class Solution(object):
      def triangleNumber(self, nums):
          """
          :type nums: List[int]
          :rtype: int
          """
          result = 0
          nums.sort()
          for i in xrange(len(nums)-2):
              if nums[i] == 0:
                  continue
              k = i+2
              for j in xrange(i+1, len(nums)-1):
                  while k < len(nums) and nums[i] + nums[j] > nums[k]:
                      k += 1
                  result += k-j-1
          return result
  
subject: Create valid-triangle-number.py