Category Archives: Posts

C++: Unordered maps and sets for non-primitive types

Since C++ 11, we can use unordered sets and unordered maps. However, these data structures only seem to work with primitive types and strings. If you need a pair or a vector as the key, you’re out of luck. Fortunately, … Continue reading

Posted in Algorithms & Data structures, Posts, ShortPosts, SoftwareEngineering | Leave a comment

QuickSelect

Theory Quickselect on Wikipedia Implementation in C++ Practice https://leetcode.com/problems/kth-largest-element-in-an-array/

Posted in Algorithms & Data structures, Posts, SoftwareEngineering | Leave a comment

Fenwick tree (aka Binary Indexed Tree)

Theory TopCoder – Binary Indexed Trees Algorithms Live – Fenwick tree Wikipedia – Fenwick tree Implementation in C++ Practice Kattis – Movie collection AtCoder – B Fenwick Tree

Posted in Algorithms & Data structures, Posts, SoftwareEngineering | Leave a comment

Disjoint Set Union (aka Union-Find)

Theory Algorithms, 4th edition by Robert Sedgewick, Kevin Wayne 1.5   Case Study: Union-Find Union Find on Cubits.ai Implementation in C++ Practice https://atcoder.jp/contests/practice2/tasks/practice2_a

Posted in Algorithms & Data structures, Posts, SoftwareEngineering | Leave a comment

Must read

Retries Exponential Backoff And Jitter AWS SDK Retry behavior Error retries and exponential backoff in AWS Example in Java The following example is not meant to be complete, its goal is to give you a good idea of how to … Continue reading

Posted in Posts, SoftwareEngineering | Leave a comment

Isolate the rightmost (least-significant) bit

Fast & elegant: Tests Output Brute force Output for the new version Practice 231. Power of Two 191. Number of 1 Bits Related concepts Two’s complement

Posted in Algorithms & Data structures, Posts, ShortPosts | Leave a comment

Generate files with random bytes

The following command grabs 20 Mb of random bytes from /dev/urandom and saves it to rnd.bin: Generate a bunch of files:

Posted in Posts, ShortPosts, SoftwareEngineering | Leave a comment

Kadane’s algorithm

I just learned about this algorithm, which is considered a dynamic programming approach. However, depending on the implementation, it might not resemble dynamic programming at all. Check out the implementation presented on Wikipedia: That does not look like dynamic programming … Continue reading

Posted in Algorithms & Data structures, Posts | Leave a comment

AES encryption in Go

Here is a program I wrote to learn how to use the Go libraries for AES encryption. Build & run I hope it helps. References Advanced Encryption Standard Advanced Encryption Standard (Wikipedia)

Posted in Posts, SoftwareEngineering | Leave a comment

Build C/C++ libraries with debugging support

I’ve been debugging a program which uses certain library on CLion. The IDE is great, but I cannot see most of the code from the library, the debugger shows me assembly code, and that’s not very helpful. The solution was … Continue reading

Posted in Posts, SoftwareEngineering | Leave a comment