![]() |
![]() |
![]() |
![]() |
About
About, passions & interests
Hello world! My name is William, I'm a French Canadian with a passion for computer programming. Although I admit that I am totally and completely obsessed with programming that it is not the only thing I do. Some of my other passions and interests include:- Teaching computer science and mathematics education. See Teacher on YouTube section below to view my efforts to push CS education forward.
- The world of electrical engineering. I bought a Raspberry PI and an Arduino in 2015 and have been tinkering away ever since to see what useful/creative things I can construct.
- Mathematics, a topic I am very fond of; my appreciation and love for the subject could not be more clearly expressed but by a quote from Bertrand Russell:
“Mathematics, rightly viewed, possesses not only truth, but supreme beauty -- a beauty cold and austere, like that of sculpture, without appeal to any part of our weaker nature, without the gorgeous trappings of painting or music, yet sublimely pure, and capable of a stern perfection such as only the greatest art can show.”
- Bertrand Russell
Little known facts
- Qualified in one of the Canadian teams for the ACM-ICPC world finals programming competition held in Rapid City South Dakota, May 2017
- Ran first marathon in the summer of 2016 in Saint John NB, Canada at the Marathon by the Sea
- Proud owner of a Shotokan karate black belt earned after 5+ years of training.
- Passionate unicyclist since 2010.
Educational Background
Graduated from Mount Allison University with a B.Sc joint honors in computer science and mathematics, May 2017.
Work Experience
Google - Software Engineer
I currently work as a software engineer for Google.
I originally worked on growing user presence for Google Maps and now I’m focusing on improving storage and privacy on Google Cloud.
Projects
Teacher on YouTube (100+ videos)
I am the creator and teacher of educational mathematics and computer science content on Youtube.
The goal of my channel is
to improve computer science education by delivering content which is easily accessible and understandable.
I predominantly teach advanced topics surrounding algorithms and data structures because I believe
these are essential skills required in becoming an exemplary programmer.
Here is one of my favorite videos in which I introduce Graph Theory:
Problem Vault
Problem Vault is a website created by Micah Stairs, Finn Lidbetter and myself which contains a large
collection of competitive programming problems accompanied with their solutions. The site was developed
in the hopes that it will be a useful resource that will help students/programmers become stronger problem solvers.
Here is a video giving a live demo of problem vault featuring Micah Stairs:

Fractal Explorer
One of the first projects I pioneered was my Fractal Explorer application which allows you to zoom in and out of a Mandelbrot Set. Here are some gorgeous screen shots I acquired while navigating my fractal application:





Game Of Life
Cellular automata are fascinating, they are predicable agents of chaos formed by discrete mathematical models. In the early days of the Apple store there were none or very few IOS applications which allowed you to create your own custom automata with a design pattern of your choice. I developed a simulator of John Conway’s Game Of Life:

![]() |
![]() |
Solved Problems
In my spare time one of my hobbies is to solve programming puzzles, often algorithmic or mathematical in nature. Below is a list of online judges who host problems I often tackle. In total there are 1073 problems listed below.
Project Euler
Project Euler is the website that originally got me into computer programming and mathematics; I owe a lot of my success to them. The site contains a lot of very high quality mathematics problems, and a new problem is being added almost every week. I am currently in the top 1% of members on Project Euler.
Solved Problems (145)
- Problem 1: Multiples of 3 and 5
- Problem 2: Even Fibonacci numbers
- Problem 3: Largest prime factor
- Problem 4: Largest palindrome product
- Problem 5: Smallest multiple
- Problem 6: Sum square difference
- Problem 7: 10001st prime
- Problem 8: Largest product in a series
- Problem 9: Special Pythagorean triplet
- Problem 10: Summation of primes
- Problem 11: Largest product in a grid
- Problem 12: Highly divisible triangular number
- Problem 13: Large sum
- Problem 14: Longest Collatz sequence
- Problem 15: Lattice paths
- Problem 16: Power digit sum
- Problem 17: Number letter counts
- Problem 18: Maximum path sum I
- Problem 19: Counting Sundays
- Problem 20: Factorial digit sum
- Problem 21: Amicable numbers
- Problem 22: Names scores
- Problem 23: Non-abundant sums
- Problem 24: Lexicographic permutations
- Problem 25: 1000-digit Fibonacci number
- Problem 26: Reciprocal cycles
- Problem 27: Quadratic primes
- Problem 28: Number spiral diagonals
- Problem 29: Distinct powers
- Problem 30: Digit fifth powers
- Problem 31: Coin sums
- Problem 32: Pandigital products
- Problem 33: Digit cancelling fractions
- Problem 34: Digit factorials
- Problem 35: Circular primes
- Problem 36: Double-base palindromes
- Problem 37: Truncatable primes
- Problem 38: Pandigital multiples
- Problem 39: Integer right triangles
- Problem 40: Champernowne's constant
- Problem 41: Pandigital prime
- Problem 42: Coded triangle numbers
- Problem 43: Sub-string divisibility
- Problem 44: Pentagon numbers
- Problem 45: Triangular, pentagonal, and hexagonal
- Problem 46: Goldbach's other conjecture
- Problem 47: Distinct primes factors
- Problem 48: Self powers
- Problem 49: Prime permutations
- Problem 50: Consecutive prime sum
- Problem 51: Prime digit replacements
- Problem 52: Permuted multiples
- Problem 53: Combinatoric selections
- Problem 54: Poker hands
- Problem 55: Lychrel numbers
- Problem 56: Powerful digit sum
- Problem 57: Square root convergents
- Problem 58: Spiral primes
- Problem 59: XOR decryption
- Problem 60: Prime pair sets
- Problem 61: Cyclical figurate numbers
- Problem 62: Cubic permutations
- Problem 63: Powerful digit counts
- Problem 64: Odd period square roots
- Problem 65: Convergents of e
- Problem 66: Diophantine equation
- Problem 67: Maximum path sum II
- Problem 68: Magic 5-gon ring
- Problem 69: Totient maximum
- Problem 70: Totient permutation
- Problem 71: Ordered fractions
- Problem 72: Counting fractions
- Problem 73: Counting fractions in a range
- Problem 74: Digit factorial chains
- Problem 75: Singular integer right triangles
- Problem 76: Counting summations
- Problem 77: Prime summations
- Problem 78: Coin partitions
- Problem 79: Passcode derivation
- Problem 80: Square root digital expansion
- Problem 81: Path sum: two ways
- Problem 82: Path sum: three ways
- Problem 83: Path sum: four ways
- Problem 85: Counting rectangles
- Problem 86: Cuboid route
- Problem 87: Prime power triples
- Problem 89: Roman numerals
- Problem 90: Cube digit pairs
- Problem 91: Right triangles with integer coordinates
- Problem 92: Square digit chains
- Problem 93: Arithmetic expressions
- Problem 94: Almost equilateral triangles
- Problem 95: Amicable chains
- Problem 96: Su Doku
- Problem 97: Large non-Mersenne prime
- Problem 98: Anagramic squares
- Problem 99: Largest exponential
- Problem 100: Arranged probability
- Problem 101: Optimum polynomial
- Problem 102: Triangle containment
- Problem 104: Pandigital Fibonacci ends
- Problem 107: Minimal network
- Problem 108: Diophantine reciprocals I
- Problem 111: Primes with runs
- Problem 112: Bouncy numbers
- Problem 113: Non-bouncy numbers
- Problem 114: Counting block combinations I
- Problem 115: Counting block combinations II
- Problem 116: Red, green or blue tiles
- Problem 117: Red, green, and blue tiles
- Problem 119: Digit power sum
- Problem 120: Square remainders
- Problem 121: Disc game prize fund
- Problem 123: Prime square remainders
- Problem 124: Ordered radicals
- Problem 125: Palindromic sums
- Problem 134: Prime pair connection
- Problem 138: Special isosceles triangles
- Problem 139: Pythagorean tiles
- Problem 144: Investigating multiple reflections of a laser beam
- Problem 145: How many reversible numbers are there below one-billion?
- Problem 146: Investigating a Prime Pattern
- Problem 173: Using up to one million tiles how many different "hollow" square laminae can be formed?
- Problem 174: Counting the number of "hollow" square laminae that can form one, two, three, ... distinct arrangements
- Problem 179: Consecutive positive divisors
- Problem 182: RSA encryption
- Problem 186: Connectedness of a network
- Problem 187: Semiprimes
- Problem 188: The hyperexponentiation of a number
- Problem 191: Prize Strings
- Problem 193: Squarefree Numbers
- Problem 200: Find the 200th prime-proof sqube containing the contiguous sub-string "200"
- Problem 203: Squarefree Binomial Coefficients
- Problem 204: Generalised Hamming Numbers
- Problem 205: Dice Game
- Problem 206: Concealed Square
- Problem 211: Divisor Square Sum
- Problem 213: Flea Circus
- Problem 214: Totient Chains
- Problem 216: Investigating the primality of numbers of the form
- Problem 226: A Scoop of Blancmange
- Problem 231: The prime factorisation of binomial coefficients
- Problem 243: Resilience
- Problem 348: Sum of a square and a cube
- Problem 357: Prime generating integers
Close
Kattis
Kattis is one of my favorite online competitive programming judges because of the large quantity of high caliber problems.
My programming competition team and I use Kattis to host our practices in preparation for the ACM-ICPC competition.
I am currently ranked as the 17th best problem solver on Kattis and 3rd amoung Canadian users, view my profile page.
Solved Problems (476)
- 10kindsofpeople
- 2048
- 4thought
- a1paper
- aaah
- abc
- acm
- addingwords
- different
- cats
- listgame
- allaboutthatbase
- alldifferentdirections
- allpairspath
- almostperfect
- alphabetspam
- anagramcounting
- anewalphabet
- industrialspy
- anotherbrick
- anothercandies
- antiarithmetic
- ants
- apaxiaaans
- tank
- arcticnetwork
- areal
- arithmetic
- armystrengtheasy
- armystrengthhard
- asciifigurerotation
- acm2
- towering
- automatictrading
- avoidland
- babelfish
- backspace
- baconeggsandspam
- balanceddiet
- baloni
- battleship
- bazen
- beatspread
- beavergnaw
- beehives
- beehives2
- beekeeper
- bela
- bestcompression
- standings
- biggest
- bigtruck
- bijele
- binarytree
- bing
- birds
- bishops
- bitbybit
- bits
- bitsequalizer
- primes2
- blackfriday
- blockcrusher
- blockgame2
- wrapping
- bobby
- vegetables
- bookclub
- bookingaroom
- bottledup
- boundingrobots
- brackets
- breakingbad
- brickwall
- builddeps
- traffic
- burrowswheeler
- bus
- busnumbers
- busyschedule
- buttonbashing
- calculator
- candydistribution
- candydivision
- cantinaofbabel
- cardmagic
- cardtrick2
- carousel
- catalan
- catalansquare
- catenyms
- cd
- ceiling
- cetvrta
- chartingprogress
- cheetahs
- checkingforcorrectness
- chemistsvows
- chesstournament
- chineseremainder
- countcircuits
- city
- classpicture
- clockpictures
- closestpair1
- closestsums
- closingtheloop
- coast
- cokolada
- cold
- collatz
- color
- comparinganswers
- compiler
- completingthesquare
- compositions
- compoundwords
- conversationlog
- convexhull
- convexpolygonarea
- countingstars
- subseqhard
- safe
- cranes
- crne
- conundrum
- crypto
- cursethedarkness
- cuttingcorners
- dangerousskiing
- dartboard
- dartscores
- dartscoring
- decodingthehallway
- deduplicatingfiles
- detaileddifferences
- dicecup
- dicegame
- differentdistances
- digitsum
- downtime
- sequence
- divisible
- divisors
- dominoes2
- dominos
- doorman
- dungeon
- dvaput
- dvds
- dyslectionary
- 8queens
- eligibility
- emergency
- encodedmessage
- engineeringenglish
- enlarginghashtables
- equalsumseasy
- equations
- erase
- erdosnumbers
- erraticants
- esej
- estimatingtheareaofacircle
- euclidsgame
- eulerianpath
- evenup
- exactchange2
- redistribution
- factovisors
- factstone
- falsesecurity
- fastfood
- fenwick
- fibonacci
- firefly
- fizzbuzz
- flexible
- flipfive
- flowergarden
- flyingsafely
- fractionallotion
- freckles
- friday
- functionalfun
- fundamentalneighbors
- funhouse
- gameofcards
- generalizedrecursivefunctions
- geneticsearch
- geppetto
- ith
- goldbach2
- golfbot
- golombrulers
- goofy
- gopher2
- grandpabernie
- grassseed
- grid
- growlinggears
- guess
- guessthenumbers
- halfacookie
- hammingellipses
- happyprime
- haypoints
- hello
- herman
- hidden
- hidingplaces
- hittingtargets
- howmanydigits
- guessthedatastructure
- tutorial
- maptiles2
- nine
- measurement
- thinkingofanumber
- incognito
- increasingsubsequence
- mandelbrot
- integerlists
- interestingintegers
- caching
- inversefactorial
- iqtest
- islandhopping
- everywhere
- jabuke
- joggingtrails
- communication
- compass
- juryjeopardy
- justaminute
- kastenlauf
- kemija08
- kinarow
- excursion
- kinversions
- knapsack
- kornislav
- ladder
- leftbeehind
- lektira
- walls
- equationsolver
- linearrecurrence
- segmentdistance
- segmentintersection
- lineup
- logo
- longincsubseq
- mastermind
- matrix
- maxflow
- maxcolinear
- mazemovement
- memorymatch
- metaprogramming
- millionairemadness
- mincostmaxflow
- mincut
- minimumscalar
- minspantree
- misa
- mixedfractions
- modulararithmetic
- modulo
- moneymatters
- moogle
- mosquito
- scenes
- multigram
- musicalnotation
- musicyourway
- natjecanje
- ninepacks
- nizovi
- notamused
- npuzzle
- numbertree
- trick
- anti11
- oddities
- oddmanout
- officespace
- okviri
- olderbrother
- ones
- ceremony
- opensource
- ornaments
- pachydermpeanutpacking
- paintball
- palindromesubstring
- parking
- parking2
- parsinghex
- pascal
- password
- pathtracing
- pauleigon
- pebblesolitaire
- pebblesolitaire2
- primes
- peg
- peragrams
- perfectpowers
- perket
- permcode
- permutationencryption
- permutedarithmeticsequence
- pervasiveheartmonitor
- mosquitoes
- pet
- phonelist
- piglatin
- pivot
- pizza2
- pizza
- pizzahawaii
- plantingtrees
- pointinpolygon
- polish
- polygonarea
- polymul1
- polymul2
- vote
- pot
- powerstrings
- chopin
- presidentialelections
- prettygoodcuberoot
- primalrepresentation
- register
- primepath
- primereduction
- primesieve
- primonimo
- printingcosts
- equivalences
- prsteni
- pseudoprime
- ptice
- qualificationround
- quickbrownfox
- quickestimate
- quiteaproblem
- raceday
- commercials
- raggedright
- rationalarithmetic
- reachableroads
- recenice
- reconnaissance
- recount
- relatives
- substrings
- repeatingdecimal
- reversebinary
- reverserot
- rijeci
- rings2
- roberthood
- robotopia
- rockpaperscissors
- rollcall
- roundedbuttons
- runningmom
- saintjohn
- santaklas
- savingdaylight
- secretmessage
- securedoors
- selectgroup
- selfsimilarstrings
- semafori
- server
- set
- sevenwonders
- shopaholic
- sidewayssorting
- simon
- simonsays
- simpleaddition
- simplicity
- shortestpath3
- shortestpath1
- sjecista
- skijumping
- skocimis
- slidingtiles
- smallestmultiple
- snappereasy
- snapperhard
- sodasurpler
- carrots
- sortofsorting
- soylent
- spavanac
- speedlimit
- splat
- cups
- curvyblocks
- aliens
- statistics
- stockprices
- stringmatching
- stringmultimatching
- timeloop
- suffixarrayreconstruction
- suffixsorting
- sumkindofproblem
- sumoftheothers
- consecutivesums
- supercomputer
- svm
- sylvester
- symmetricorder
- synchronizinglists
- twostones
- taxicab
- ternarianweights
- textureanalysis
- humancannonball2
- thebackslashproblem
- thedragonandtheknights
- loowater
- easiest
- magical3
- rectanglesurrounding
- threedigits
- threepowers
- timebomb
- toilet
- torn2pieces
- touchscreenkeyboard
- tourdefrance
- trainsorting
- tsp
- treasurediving
- insert
- tri
- countingtriangles
- trilemma
- tricktreat
- trik
- tritiling
- trollhunt
- zoo
- unionfind
- unusualdarts
- vacuumba
- variablearithmetic
- vauvau
- veci
- queens
- virtualfriends
- volim
- walrusweights
- watchdog
- weakvertices
- welcomeeasy
- welcomehard
- heritage
- whatdoesthefoxsay
- grille
- wheresmyinternet
- rafting
- wizardofodds
- wordcloud
- wordsfornumbers
- zamka
- zipfslaw
- zoning
Close
Hackerrank
I recently discovered Hackerrank and I love their challenges, competitions and community of coders.
The site offers a rich variety of problem categories and areas of specialization including: algorithms, data structures, AI, functional programming, etc...
They also hosts weekly programming competitions which I often partake in, view my profile page.
Solved Problems (335)
- a-very-big-sum
- abbr
- absolute-permutation
- accurate-sorting
- acm-icpc-team
- alternating-characters
- an-interesting-game-1
- anagram
- and-product
- angry-professor
- any-or-all
- aorb
- append-and-delete
- apple-and-orange
- arias-loops
- arithmetic-expressions
- array-left-rotation
- arrays-ds
- arrays-introduction
- balanced-brackets
- bash-tutorials-lets-echo
- battery
- bday-gift
- beautiful-binary-string
- beautiful-days-at-the-movies
- beautiful-triplets
- beautiful-word
- between-two-sets
- bfsshortreach
- big-sorting
- bigger-is-greater
- binary-search-tree-insertion
- binary-search-tree-lowest-common-ancestor
- binomial-distribution-1
- binomial-distribution-2
- birthday-cake-candles
- bomber-man
- bon-appetit
- breaking-best-and-worst-records
- c-tutorial-basic-data-types
- c-tutorial-conditional-if-else
- c-tutorial-for-loop
- c-tutorial-functions
- c-tutorial-pointer
- caesar-cipher-1
- camelcase
- candies
- cats-and-a-mouse
- cavity-map
- chocolate-feast
- circle-city
- circular-array-rotation
- climbing-the-leaderboard
- closest-numbers
- coin-change
- colliding-circles
- compare-the-triplets
- compare-two-linked-lists
- components-in-graph
- computer-game
- connected-cell-in-a-grid
- connecting-towns
- contacts
- correctness-invariant
- count-luck
- counter-game
- counting-valleys
- countingsort1
- countingsort2
- cpp-hello-world
- cpp-input-and-output
- crush
- cut-the-sticks
- day-of-the-programmer
- delete-a-node-from-a-linked-list
- designer-pdf-viewer
- detect-whether-a-linked-list-contains-a-cycle
- determinant-of-the-matrix-1
- determinant-of-the-matrix-2
- determinant-of-the-matrix-3
- diagonal-difference
- digital-camera-day-or-night
- dijkstrashortreach
- divisible-sum-pairs
- diwali-lights
- drawing-book
- dreamplay-and-the-string-game
- dynamic-array
- dynamic-programming-classics-the-longest-common-subsequence
- easy-gcd-1
- eigenvalue-of-matrix-1
- eigenvalue-of-matrix-2
- eigenvalues-of-matrix-3
- eigenvalues-of-matrix-4
- electronics-shop
- encryption
- equal-stacks
- equality-in-a-array
- even-odd-query
- extra-long-factorials
- fair-rations
- fibonacci-finding-easy
- fibonacci-modified
- filling-jars
- find-angle
- find-digits
- find-point
- find-the-median
- find-the-running-median
- flatland-space-stations
- flipping-bits
- floyd-city-of-blinding-lights
- funny-string
- game-of-stones-1
- game-of-thrones
- gem-stones
- gena
- get-the-value-of-the-node-at-a-specific-position-from-the-tail
- ginorts
- grading
- grid-challenge
- hackerrank-in-a-string
- halloween-party
- handshake
- happy-ladybugs
- hot-and-cold
- icecream-parlor
- input
- insert-a-node-at-the-head-of-a-linked-list
- insert-a-node-at-the-tail-of-a-linked-list
- insert-a-node-into-a-sorted-doubly-linked-list
- insertionsort1
- insertionsort2
- is-binary-search-tree
- is-fibo
- itertools-product
- japanese-cities-attributes
- japanese-cities-name
- java-biginteger
- java-factory
- java-generics
- java-hashset
- java-inheritance-1
- java-int-to-string
- java-primality-test
- java-static-initializer-block
- java-string-reverse
- jesse-and-cookies
- jim-and-the-orders
- johnland
- journey-to-the-moon
- jumping-on-the-clouds
- jumping-on-the-clouds-revisited
- kangaroo
- kaprekar-numbers
- kruskalmstrsub
- larrys-array
- lazy-sorting
- lecture-notes
- leonardo-and-prime
- library-fine
- linear-algebra-foundations-1
- linear-algebra-foundations-1-matrix-subtraction
- linear-algebra-foundations-3-matrix-multiplication
- linear-algebra-foundations-4-matrix-multiplication
- linear-algebra-foundations-5-the-100th-power-of-a-matrix
- linear-algebra-foundations-6-the-nsupthsup-power-of-a-matrix
- linear-algebra-foundations-7-the-1000th-power-of-a-matrix
- linear-algebra-fundamentals-10-eigenvectors
- linear-algebra-fundamentals-8-systems-of-equations
- linear-algebra-fundamentals-9-eigenvalues
- lisa-workbook
- lonely-integer
- longest-increasing-subsequent
- magic-square-forming
- making-anagrams
- manasa-and-stones
- map-and-lambda-expression
- mark-and-toys
- mars-exploration
- maximizing-xor
- maximum-draws
- maximum-element
- maximum-perimeter-triangle
- maxsubarray
- merge-two-sorted-linked-lists
- merging-communities
- migratory-birds
- mini-max-sum
- minimum-distances
- misere-nim-1
- missing-numbers
- nim-game-1
- no-prefix-set
- non-divisible-subset
- normal-distribution-1
- normal-distribution-2
- organizing-containers-of-balls
- p-string
- pairs
- palindrome-index
- pangrams
- permutation-equation
- phone-book
- picking-numbers
- plus-minus
- points-on-a-line
- polar-coordinates
- possible-path
- power-of-large-numbers
- prime-checker
- primsmstsub
- print-the-elements-of-a-linked-list
- print-the-elements-of-a-linked-list-in-reverse
- pylons
- python-division
- python-eval
- python-integers-come-in-all-sizes
- python-loops
- python-mod-divmod
- python-power-mod-power
- python-print
- python-quest-1
- qheap1
- queens-attack-2
- quicksort1
- quicksort2
- red-john-is-back
- reduced-string
- repeated-string
- reverse-a-doubly-linked-list
- reverse-a-linked-list
- revising-the-select-query
- revising-the-select-query-2
- richie-rich
- runningtime
- s10-basic-statistics
- s10-quartiles
- s10-standard-deviation
- s10-weighted-mean
- sansa-and-xor
- save-the-prisoner
- saveprincess
- saveprincess2
- select-all-sql
- select-by-id
- separate-the-numbers
- service-lane
- sherlock-and-array
- sherlock-and-cost
- sherlock-and-squares
- sherlock-and-the-beast
- sherlock-and-valid-string
- shortest-path
- simple-addition-varargs
- simple-array-sum
- simple-text-editor
- sock-merchant
- solve-me-first
- sorted-subsegments
- spanning-tree-fraction
- sparse-arrays
- staircase
- strange-advertising
- strange-code
- sudoku
- sum-on-subarrays
- summing-the-n-series
- taras-beautiful-permutations
- taum-and-bday
- the-birthday-bar
- the-grid-search
- the-hurdle-race
- the-love-letter-mystery
- the-power-sum
- the-quickest-way-up
- the-time-in-words
- tight-arrays
- time-conversion
- torque-and-development
- tower-breakers-1
- tower-breakers-revisited-1
- tree-height-of-a-binary-tree
- tree-inorder-traversal
- tree-level-order-traversal
- tree-postorder-traversal
- tree-preorder-traversal
- tree-top-view
- triangle-quest-2
- tutorial-intro
- two-arrays
- two-characters
- two-pluses
- two-strings
- uds-echo-server
- unbounded-knapsack
- utopian-tree
- walking-robots
- weather-observation-station-1
- weather-observation-station-3
- write-a-function
- xor-quadruples
- zero-one-game
- zipped
- 2d-array
- 30-2d-arrays
- 30-abstract-classes
- 30-arrays
- 30-binary-numbers
- 30-binary-search-trees
- 30-binary-trees
- 30-bitwise-and
- 30-class-vs-instance
- 30-conditional-statements
- 30-data-types
- 30-dictionaries-and-maps
- 30-exceptions-string-to-integer
- 30-generics
- 30-hello-world
- 30-inheritance
- 30-interfaces
- 30-linked-list
- 30-linked-list-deletion
- 30-loops
- 30-more-exceptions
- 30-nested-logic
- 30-operators
- 30-queues-stacks
- 30-recursion
- 30-regex-patterns
- 30-review-loop
- 30-running-time-and-complexity
- 30-scope
- 30-sorting
- 30-testing
Close
LeetCode
LeetCode is a very educational website which offers problems commonly asked during technical interviews.
The site also provides valuable articles about programming techniques and data structures.
View my profile page.
Solved Problems (117)
- Add Digits
- Add Two Numbers
- Arranging Coins
- Best Time to Buy and Sell Stock
- Binary Search Tree Iterator
- Binary Tree Inorder Traversal
- Binary Tree Level Order Traversal
- Binary Tree Paths
- Binary Tree Preorder Traversal
- Climbing Stairs
- Coin Change
- Combination Sum IV
- Combination Sum
- Combinations
- Container With Most Water
- Contains Duplicate
- Convert Sorted Array to Binary Search Tree
- Count Primes
- Counting Bits
- Distinct Subsequences
- Factorial Trailing Zeroes
- Find Median from Data Stream
- Find the Difference
- Find the Duplicate Number
- First Missing Positive
- First Unique Character in a String
- Group Anagrams
- Guess Number Higher or Lower
- Hamming Distance
- Happy Number
- House Robber
- Implement strStr()
- Intersection of Two Arrays II
- Intersection of Two Arrays
- Invert Binary Tree
- Is Subsequence
- Jump Game
- Kth Largest Element in an Array
- Kth Smallest Element in a BST
- Kth Smallest Element in a Sorted Matrix
- Largest Number
- Letter Combinations of a Phone Number
- Linked List Cycle
- Longest Common Prefix
- Longest Increasing Subsequence
- Longest Substring Without Repeating Characters
- Majority Element
- Maximum Depth of Binary Tree
- Maximum Product Subarray
- Maximum Subarray
- Merge Two Sorted Lists
- Merge k Sorted Lists
- Min Stack
- Minimum Path Sum
- Missing Number
- Move Zeroes
- N-Queens II
- Next Permutation
- Nim Game
- Number Complement
- Number of 1 Bits
- Number of Islands
- Palindrome Linked List
- Palindrome Number
- Pascal's Triangle II
- Pascal's Triangle
- Path Sum II
- Path Sum
- Perfect Squares
- Permutations
- Power of Four
- Power of Three
- Power of Two
- Range Sum Query - Immutable
- Remove Duplicates from Sorted Array
- Remove Duplicates from Sorted List
- Remove Element
- Reverse Bits
- Reverse Linked List II
- Reverse Linked List
- Reverse Nodes in k-Group
- Reverse String
- Reverse Vowels of a String
- Reverse Words in a String
- Rotate Array
- Rotate Image
- Rotate List
- Same Tree
- Set Matrix Zeroes
- Shuffle an Array
- Single Number
- Sort Colors
- Spiral Matrix
- Sqrt(x)
- Subsets II
- Subsets
- Sum of Two Integers
- Super Pow
- Swap Nodes in Pairs
- Symmetric Tree
- Target Sum
- Third Maximum Number
- Top K Frequent Elements
- Total Hamming Distance
- Triangle
- Two Sum II - Input array is sorted
- Two Sum
- Ugly Number II
- Ugly Number
- Unique Paths II
- Unique Paths
- Valid Anagram
- Valid Palindrome
- Valid Parentheses
- Valid Perfect Square
- Validate Binary Search Tree
- Wiggle Subsequence