Skip to content

Instantly share code, notes, and snippets.

View bruceoutdoors's full-sized avatar
🧗

Lee Zhen Yong bruceoutdoors

🧗
View GitHub Profile
@bruceoutdoors
bruceoutdoors / wg-addclient.sh
Last active December 30, 2023 10:25
Quick Wireguard VPN setup for AWS. Just run the CloudFormation stack, access the VM via SSM, and execute `wg-addclient` to add a client. See https://bruceoutdoors.wordpress.com/2023/02/01/how-to-build-a-wireguard-vpn/
#!/bin/bash
# Note: Must run as root!
cd /etc/wireguard/
# Get next available internal IP address
IP=$((`tac wg0.conf | grep -m1 -oP "[0-9]+(?=/32)" || echo 1` + 1))
# Generate client key
CLIENT_PRIVATE=`wg genkey`
@bruceoutdoors
bruceoutdoors / scikit-learn-tut.ipynb
Created May 8, 2021 13:56
Scikit-Learn Tutorial | Machine Learning With Scikit-Learn | Sklearn | Python Tutorial | Simplilearn (https://youtu.be/0Lt9w-BxKFQ)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@bruceoutdoors
bruceoutdoors / find_target_combination.py
Last active March 10, 2020 15:06
infinitilab algo question
# python3
from collections import deque
# Store combinations as a tree. The size of the tree directly
# corresponds to the running time of the algorithm - O(2^n)
# Worst runtime is when the sum of items is larger than the target
# and no combination exist. An intuitive optimization here is to
# prune combinations away when the sum has already exceeded the target
class Node:
public class Solution {
private IList<IList<int>> graph;
private bool[] marked;
private bool[] onStack;
private bool hasCycle;
private Stack<int> s;
public int[] FindOrder(int numCourses, int[,] prerequisites) {
graph = new List<IList<int>>();
marked = new bool[numCourses];
public class Solution {
private IList<IList<int>> graph;
private bool[] marked;
private bool[] onStack;
private bool hasCycle;
public bool CanFinish(int numCourses, int[,] prerequisites) {
graph = new List<IList<int>>();
marked = new bool[numCourses];
onStack = new bool[numCourses];
public class Solution {
IList<IList<int>> graph;
bool[] marked;
public bool CanVisitAllRooms(IList<IList<int>> rooms) {
graph = rooms;
marked = new bool[rooms.Count];
dfs(0);
/******************************************************************************
* Execution: ./DisjointSet < input.txt
* Data files: http://algs4.cs.princeton.edu/15uf/tinyUF.txt
* http://algs4.cs.princeton.edu/15uf/mediumUF.txt
* http://algs4.cs.princeton.edu/15uf/largeUF.txt
*
* Weighted quick-union by rank with path compression.
*
* % ./DisjointSet < tinyUF.txt
* 4 3
# Python3 port of http://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/UF.java.html
class DisjointSet:
"""
Execution: python disjoint_set.py < input.txt
Data files: http://algs4.cs.princeton.edu/15uf/tinyUF.txt
http://algs4.cs.princeton.edu/15uf/mediumUF.txt
http://algs4.cs.princeton.edu/15uf/largeUF.txt
Weighted quick-union by rank with path compression.
@bruceoutdoors
bruceoutdoors / charcast.cpp
Created May 18, 2017 13:52
from int cast to byte, from byte extract hex values.
#include <iostream>
using namespace std;
struct Byte {
void to4Bits(char c)
{
lo = c >> 4;
hi = c & 0x0F;
}
#include <iostream>
#include <complex>
#include <cmath>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <map>
#include <tuple>
using namespace std;