diff options
Diffstat (limited to 'other/min_one_bit_0.rs')
-rw-r--r-- | other/min_one_bit_0.rs | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/other/min_one_bit_0.rs b/other/min_one_bit_0.rs deleted file mode 100644 index 1b52362..0000000 --- a/other/min_one_bit_0.rs +++ /dev/null @@ -1,29 +0,0 @@ -struct Solution; - -impl Solution { - pub fn minimum_one_bit_operations(n: i32) -> i32 { - if n <= 1 { - return n; - } - let mut max = 1usize; - while max < n as usize { - max += max; - } - let mut dp = vec![0; max as usize + 1]; - dp[1] = 1; - let (mut start, mut _i) = (2usize, 1); - while start < max as usize { - for i in 0..start / 2 { - dp[start + i] = dp[start / 2 + i] + start; - dp[start * 3 / 2 + i] = dp[i] + start; - } - start *= 2; - } - dp[max] = max * 2 - 1; - dp[n as usize] as i32 - } -} - -fn main() { - print!("{}", Solution::minimum_one_bit_operations(39769175)); -} |