From 3316c2c6d60a57d0a69d236d1a2b50aad89cd617 Mon Sep 17 00:00:00 2001 From: Riccardo Doveri Date: Thu, 14 Apr 2022 23:14:02 +0200 Subject: [PATCH] Create 191-Number-of-1-Bits.java --- java/191-Number-of-1-Bits.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 java/191-Number-of-1-Bits.java diff --git a/java/191-Number-of-1-Bits.java b/java/191-Number-of-1-Bits.java new file mode 100644 index 000000000..ac8a605c1 --- /dev/null +++ b/java/191-Number-of-1-Bits.java @@ -0,0 +1,28 @@ +//standard way +public class Solution { + // you need to treat n as an unsigned value + public int hammingWeight(int n) { + int count = 0; + int mask = 1; + for (int i = 0; i < 32; i++) { + if ((n & mask) != 0) { + count++; + } + n >>= 1; + } + return count; + } +} + +//smart way +public class Solution { + // you need to treat n as an unsigned value + public int hammingWeight(int n) { + int count = 0; + while (n != 0) { + n = n & (n - 1); + count++; + } + return count; + } +}