15 Jun 2024C++ / Python / TypeScriptEasy

Arranging Coins

Collected C++, Python, TypeScript solutions for arranging coins. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Arranging Coins. the solution files are available below.

solution files

  • C++ arranging-coins/synced-solution.cpp
  • Python arranging-coins/synced-solution.py
  • TypeScript arranging-coins/synced-solution.ts

Solution files

Pythonarranging-coins/synced-solution.py
def arrangeCoins(n):
    left, right = class="syntax-number">0, n

    while left <= right:
        mid = (left + right) class=class="syntax-string">"syntax-comment">// class="syntax-number">2
        cost = mid * (mid + class="syntax-number">1) class=class="syntax-string">"syntax-comment">// class="syntax-number">2

        if cost == n:
            return mid
        elif cost < n:
            left = mid + class="syntax-number">1
        else:
            right = mid - class="syntax-number">1

    return right
C++arranging-coins/synced-solution.cpp
class Solution {
public:
    int arrangeCoins(int n) {
        long left = class="syntax-number">0, right = n;

        while (left <= right) {
            long mid = (left + right) / class="syntax-number">2;
            long cost = mid * (mid + class="syntax-number">1) / class="syntax-number">2;

            if (cost == n) {
                return mid;
            } else if (cost < n) {
                left = mid + class="syntax-number">1;
            } else {
                right = mid - class="syntax-number">1;
            }
        }

        return right;
    }
};
TypeScriptarranging-coins/synced-solution.ts
function arrangeCoins(n: number): number {
    let left = class="syntax-number">0, right = n;

    while (left <= right) {
        const mid = Math.floor((left + right) / class="syntax-number">2);
        const cost = (mid * (mid + class="syntax-number">1)) / class="syntax-number">2;

        if (cost === n) {
            return mid;
        } else if (cost < n) {
            left = mid + class="syntax-number">1;
        } else {
            right = mid - class="syntax-number">1;
        }
    }

    return right;
}