As a graduate student in Statistics, I profoundly believe the power of programming skills to Statistics/ Data Science. I used R or Matlab as my default programming tools and they are pretty powerful to help me solve most mathematical related tasks. However I realize in Artificial Intelligence/ Machine Learning realm, Python is more prevelent. In order to better gain the gist of this mighty programming language, in the process of learning it, I will show my LeetCode practice in Python3 with relative explanations as well as pitfalls I encounter.
Question
Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Solution
1 | class Solution: |
Analysis
It is easily to ignore the condition “not use the same element twice” in the question. Initially I used
return (i, nums.index(target - nums[i] ) instead of
return (i, nums.index(target - nums[i], i+1 ),
it works for most cases, but for example such as Given nums = [3,3], target = 6, it failed to give me [0,1], it returned [0,0]. So basically .index(A,B) is to find the position of A after Bth index.Another point worthy of mentioning is self in the definition part def twoSum( self, nums, target). self is used to refer class in python. In this case the class is Solution
Difficulty
Easy