diff --git a/rust/0441-arranging-coins.rs b/rust/0441-arranging-coins.rs new file mode 100644 index 000000000..3d92066a4 --- /dev/null +++ b/rust/0441-arranging-coins.rs @@ -0,0 +1,21 @@ +impl Solution { + pub fn arrange_coins(n: i32) -> i32 { + let (mut l, mut r) = (1, n); + let mut res = 0; + + while l <= r { + let mid = l + (r - l) / 2; + let coins = (mid as i64 * (mid as i64 + 1)) / 2; + + if coins > n as i64 { + r = mid - 1; + } else { + l = mid + 1; + res = mid; + } + } + + res as i32 + + } +} \ No newline at end of file