Skip to content

Instantly share code, notes, and snippets.

View neenjaw's full-sized avatar
:shipit:
Shippin' code

Tim Austin neenjaw

:shipit:
Shippin' code
View GitHub Profile
@neenjaw
neenjaw / version-string.js
Created August 17, 2020 14:24
sorting version strings
const compareByVersionNumber = (a, b) => {
longest = (a.length > b.length) ? a.length : b.length
for(let i = 0; i < longest; i += 1) {
if (!a[i]) {
return -1
} else if (!b[i]) {
return 1
}
versionA = Number(a[i])
versionB = Number(b[i])
@neenjaw
neenjaw / prices.rb
Created August 16, 2020 19:24
Buy and sell max
# One transaction
# @param {Integer[]} prices
# @return {Integer}
def max_profit(prices)
max_profit = 0
min_price = prices[0]
i = 1
while i < prices.length do
if prices[i] < min_price
@neenjaw
neenjaw / longest_palindrome.rb
Created August 16, 2020 07:05
Longest Palindrome
def longest_palindrome(s)
letter_count =
s.chars.each_with_object(Hash.new(0)) { |c, acc| acc[c] += 1 }
result =
letter_count
.each_with_object({"odd" => false, "length" => 0}) do |(letter, count), h|
if count.even?
h["length"] += count
else
@neenjaw
neenjaw / path_sum.rb
Last active August 13, 2020 15:50
path sum III
# Definition for a binary tree node.
# class TreeNode
# attr_accessor :val, :left, :right
# def initialize(val = 0, left = nil, right = nil)
# @val = val
# @left = left
# @right = right
# end
# end
def path_sum(root, target)
@neenjaw
neenjaw / fixed_space_triangle.rb
Created August 13, 2020 03:28
Fixed space pascals triangle
# @param {Integer} row_index
# @return {Integer[]}
def get_row(row_index)
return [1] if row_index.zero?
table = Array.new(row_index + 1) { 0 }
table[0] = 1
1.upto(row_index) do |i|
i.downto(1) do |j|
@neenjaw
neenjaw / palindrome.rb
Created August 13, 2020 00:49
longest palindrome substring
# @param {String} s
# @return {String}
def longest_palindrome(s)
return s if s.length <= 1
longest = ""
for i in 0...(s.length - 1)
odd = check_from_center(s, i, i)
even = check_from_center(s, i, i + 1)
@neenjaw
neenjaw / Longest_substring.rb
Created August 11, 2020 09:08
Longest substring
def length_of_longest_substring(s)
cache = Hash.new
start = 0
len = 0
for (c, i) in s.chars.each_with_index
if cache[c] && cache[c] >= start
start = cache[c] + 1
end
len = [len, i-start+1].max
cache[c] = i
@neenjaw
neenjaw / shuffle.rb
Created August 10, 2020 14:57
Shuffle
# @param {Integer[]} nums
# @param {Integer} n
# @return {Integer[]}
def shuffle(nums, n)
# list = []
# i = 0
# while i < n
# list << nums[i]
# list << nums[n + i]
# i += 1
@neenjaw
neenjaw / excel.rb
Created August 10, 2020 14:37
Excel Column -> Integer
# @param {String} s
# @return {Integer}
OFFSET = "A".ord - 1
def title_to_number(s)
# s.bytes.reverse.inject([0, 0]) do |(place, value), c|
# place_value = (c - OFFSET) * (26 ** place)
# [place + 1, value + place_value]
# end
# .last
@neenjaw
neenjaw / running_sum.rb
Created August 10, 2020 13:52
running sum
# @param {Integer[]} nums
# @return {Integer[]}
def running_sum(nums)
# sum_so_far = 0
# nums.map do |n|
# sum_so_far += n
# sum_so_far
# end
# nums