Skip to content

Instantly share code, notes, and snippets.

@lsem
lsem / lfu_cache.cpp
Last active August 5, 2024 20:43
lfu_cache.cpp
#include <cassert>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <unordered_map>
using namespace std;
class LFUCache {
@lsem
lsem / lru_cache.cpp
Last active July 31, 2024 16:56
lru_cache.cpp
#include <list>
#include <unordered_map>
using namespace std;
class LRUCache {
private:
struct keyval {
int key, val;
};
@lsem
lsem / lcs.cpp
Created July 29, 2024 18:29
lcs.cpp
#include <algorithm>
#include <iostream>
#include <string_view>
using namespace std;
string_view head(string_view s) { return s.substr(0, 1); }
string_view tail(string_view s) { return s.substr(1, s.size() - 1); }
// longest common subsequence
@lsem
lsem / bubble_sort.cpp
Created July 17, 2024 15:18
bubble_sort.cpp
#include <type_traits>
#include <cstdint>
using namespace std;
// nseq
template<int... Is> struct nseq{};
// prepend
template<int X, typename Seq> struct prepend;
@lsem
lsem / container_with_most_water.cpp
Created May 8, 2024 14:53
container_with_most_water.cpp
class Solution {
public:
int maxArea(const vector<int>& height) {
size_t left = 0;
size_t right = height.size()-1;
int max_a = 0;
while (left < right) {
int h = std::min(height[left], height[right]);
@lsem
lsem / number_of_islands.cpp
Created May 8, 2024 14:51
number_of_islands.cpp
class Solution {
public:
bool flood_fill_nonrecursive(vector<vector<char>>& grid, int px, int py) {
struct frame {
int x, y;
};
vector<frame> stack;
stack.emplace_back(frame{px,py});
@lsem
lsem / dijkstra.cpp
Last active July 31, 2024 18:40
dijkstra.cpp
#include <algorithm>
#include <cassert>
#include <iostream>
#include <limits>
#include <list>
#include <map>
#include <set>
#include <string>
#include <tuple>
#include <vector>
@lsem
lsem / merge_list.cpp
Created May 1, 2024 20:43
merge_list.cpp
#include <iostream>
#include <string>
using namespace std;
struct Node {
Node *next = nullptr;
int value = 0;
};
@lsem
lsem / user_friendly_hash.cpp
Created March 30, 2024 21:54
user_friendly_hash.cpp
#include <algorithm>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
using namespace std;
unsigned long long shash(const string& s) {
const unsigned long long P = 131;
@lsem
lsem / sorted_sum.cpp
Created March 30, 2024 21:53
sorted_sum.cpp
#include <algorithm>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
using namespace std;
// assuming array K first elements are sorted, sort so that K+1 becomes
// sorted.