Skip to content

Instantly share code, notes, and snippets.

View barrysteyn's full-sized avatar

Barry Steyn barrysteyn

View GitHub Profile
@barrysteyn
barrysteyn / swap_pairs.cpp
Created July 4, 2013 17:50
LeetCode: Swap pairs
/*
* In a competition to see who would use the least pointers
* for reversing nodes in a linked list, I think this solution
* should be entered. There are easier solutions to read/spot,
* but I think this is the most elegant.
*/
class Solution {
public:
ListNode *swapPairs(ListNode *head) {
/*
* The difficult part about this problem was figuring out it was
* only BFS. The restrictions of time O(nlogn) and space O(n)
* were easy to figure out.
*/
#include <algorithm>
#include <queue>
#include <utility>
#include <iostream>
@barrysteyn
barrysteyn / knapsack.cpp
Created July 6, 2013 19:55
The Knapsack algorithm
/* The classic knapsack problem, solved with
* dynamic programming. In the dp array,
* rows represent item subset choice, columns
* represent weights, and individual cells represent
* values. The knapsack algorithm can also be adapted
* to searching subsets for a target value. Just set
* weights equal to values, and one can then search subsets
* for a value.
*
* If there are n values, and the target value is t, then
/*
* My Canonical example of a C bubble sort
* This is still O(n^2) (no getting away from that)
* but it is slightly more efficient than the classic
* examples given in textbooks because the inner loop
* loops one less every time
*/
void bubbleSort_c(int *arr, int size) {
int temp = 0;
/*
* Dynamic programming at its best! The trick is
* that erasing a character, and inserting a character
* are inverse operations and therefore can be considered
* just one operation (See comments below)
*/
class Solution {
public:
@barrysteyn
barrysteyn / substring.cpp
Last active December 20, 2015 07:19
LeetCode: Substring with concatenation of all words (http://leetcode.com/onlinejudge#question_30)
/*
* This is a very cool method to perform the leetcode task.
* It is time O(n) (n being the size of string S) if it is
* implemented with an unordered_map on line 65, otherwise it
* is O(n*log(m)) (m being the size of the vector L)
*
* This method demonstrates how hashes can be used for
* comparison instead of strings. It is inspired by
* the topcoder article: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=stringSearching
*/
@barrysteyn
barrysteyn / .README.md
Last active December 27, 2015 04:58
Vim

VIM

Setup

Copy the .vimrc file below

Useful Commands

@barrysteyn
barrysteyn / README.md
Last active December 29, 2015 15:49
Useful Posix Commands

Useful Posix Commands

These commands are as Posix possible. Where differences exist between operating systems, specific instructions for the OS will be noted.

@barrysteyn
barrysteyn / .eslintrc.js
Created December 29, 2015 16:53 — forked from nkbt/.eslintrc.js
Strict ESLint config for React, ES6 (based on Airbnb Code style)
{
"env": {
"browser": true,
"node": true,
"es6": true
},
"plugins": ["react"],
"ecmaFeatures": {
@barrysteyn
barrysteyn / Quick Sort.md
Last active September 4, 2016 03:24
The canonical example for Quick Sort

Quick Sort

Notes here