Medium

Integers With Multiple Sum of Two CubesC++

Full explanation · Time O(n^(2/3) * logn) · Space O(n^(2/3))

// Time:  O(n^(2/3) * logn)
// Space: O(n^(2/3))

// brute force, freq table, sort
class Solution {
public:
    vector<int> findGoodIntegers(int n) {
        unordered_map<int, int> cnt;
        for (int i = 1; i * i * i <= n; ++i) {
            for (int j = i; j * j * j <= n - i * i * i; ++j) {
                ++cnt[i * i * i + j * j * j];
            }
        }
        vector<int> result;
        for (const auto& [k, v] : cnt) {
            if (v >= 2) {
                result.emplace_back(k);
            }
        }
        sort(begin(result), end(result));
        return result;
    }
};