Skip to main content

Leetcode Practice Reflection 1.Two Sum

LeetCode Practice Reflection - 1. Two Sum

Date: 

19MAY25


What I Worked on Today:

Practiced doing LeetCode Problem 1.Two Sum.


What I Learned:

- How to use the enumerate() function

- How to optimize possible solutions after considering brute force methods

- How to declare a new dictionary (key value pair)


Code Snippet I Wrote or Studied:

class Solution(object):

def twoSum(self, nums, target):

seen = {}

for i, num in enumerate(nums):

compliement = target - num

if compliment in seen:

return [seen[compliment], i]

seen[num] = i


In My Own Words:

This function takes in a list of numbers and will return the index of the two numbers that add up to the provided target value. The way this program works is that it creates a dictionary called "seen". It will then iterate through the list of numbers and use the enumerate function to keep track of the index and the value of the specific item in the provided list. The for loop will calculate the compliment number, meaning the target value minus the current number. It will then check to see if the value exists in the dictionary. If it does the indexes for both numbers will be returned. If the number is not found, it's value and index are added to the dictionary and the for loop will continue on.


What Was Difficult or Confusing:

My first iteration was using brute force to compare each number to every other number to find the target pair. This is an O(n^2) operation which is very inefficient. There was a more efficient method, but I could not figure it out.


How I Solved It:

I used several online resources to learn about the key data structure being a dictionary. This data structure used a key value pair to map one piece of data to another. This in conjunction with the enumerate function allowed me develop a solution that runs in approximately O(n) time. There are some additional memory requirements as a new dictionary needs to be created, but in my opinion the trade off is worth the improvement in time complexity.


Next Steps:

I will continue to explore the LeetCode problem website to develop my programming and critical thinking skills.



Comments

Popular posts from this blog

CST 370 Week 4 Journal

 This week primarily consisted of the Mid term which encompassed the first three weeks of learning. So far, this class has been challenging, but I am beginning to grasp some of the main concepts. I find that doing a daily review of the materials I have learned helps me to feel a little more confident that I understand. I feel that the main ideas have been computing the time complexity of the algorithm and getting familiar with some established algorithms for solving common problems. I will continue to study the new material and review previous materials to continue to improve.

Week 5 Learning Journal

Part One:  Supporting and Commenting on Teammate's Goals I visited the following teammate's blogs and commented on their goals. Juan's Blog Vance's Blog Part Two: Possible Capstone Ideas The three ideas I have for my capstone project are two different mobile apps and one indie game. For the two apps I am thinking of creating something in Swift, the programming language of iOS. The first app is a passion project that involves a list builder for a miniature tabletop game called OnePageRules. It is an independent miniature game ruleset and already has a web version. My app would take that template and adapt it for iOS. The second app would be a simple star wars app that utilizes an online API for Star Wars call SWAPI. This API has a number of entries related to the Star Wars universe in JSON format. My app would connect to this online API, download specific pieces of data and display them in the app.  The third idea would be to create a simple side scroller game. The game ...