Leetcode - Number of 1 Bits

好久没有刷题了。真的好久。
最近课业考试,然后身边发生了一些突发事件。直到今天,才有时间和心情,静下来刷刷提。感觉好享受。
但是linux注定不是一个适合写作的系统。。。
我一开始看的题目是,
Expression Add Operators
然后想了半小时,打算开始写了,突然发现还存在优先级这回事。于是停下来了。
这道题目应该是道很经典的题目。留着以后做。
然后就选了这道傻逼的简单题。直接上代码了。

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int counter = 0;
        for (int i = 0; i < 32; i++) {
            if ((n & 0x0001) == 1)
                counter++;
            n = (n >> 1);
        }
        return counter;
    }
}

近期的计划。
如果这周某件事可以顺利解决,我接下来一个月会比较空。2112已经进入正轨,之后的都只是体力活。好好学好,machine learning.多看书,看博客。以后的project要开始竞争刷高分了。
之后就是刷题。打算刷到200道,然后停下来。开始刷第二遍。以后的题目都尽量少看答案把。
然后就是web开发。HK的公开课感觉还是很简单。但是至少有点科普的作用。也买了书。
打算在11月中旬给女朋友写出一个美观的个人网站。这个必须做到。有时间就可以开始各种查资料了。
多和天哥交流,在他离校前从他身上多学点东西。
java。 之前我觉得我得java还是很不错的。也许写的不好,但你给我一段代码,我至少可以看懂。
但是接触了天哥和他的代码后,发现对于java还是有很多东西没有接触过或者没有弄懂。还有很多设计的思想以及技巧。
这次作业自己已经开始注意代码的整洁与干净了。好好感悟。
然后就是想要的不要太多。我没有那个天赋。一切都慢慢来。
身边的人都很强,接触的人人品都很好。然后一大帮子人寒假会留下来。
希望到时候人多点热闹点。

之前刷了三道题目,一直忘记更新上来。可惜了。
**
总结:
bit manipulation
只要打不死你的,都能让你强大。
**

Anyway, Good luck, Richardo!

My code:

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int bit = 1;
        int counter = 0;
        int ret = 0;
        while (counter < 32) {
            if ((bit & n) != 0) {
                ret++;
            }
            bit <<= 1;
            counter++;
        }
        return ret;
    }
}

简单题。
还有种更高效的做法,不看了。
reference:
https://leetcode.com/articles/number-1-bits/

Anyway, Good luck, Richardo! — 09/23/2016

    原文作者:Richardo92
    原文地址: https://www.jianshu.com/p/84b7564f5992#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞