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
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.
arranging-coins/synced-solution.cpparranging-coins/synced-solution.pyarranging-coins/synced-solution.tsdef 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
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;
}
};
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;
}