标签: 位运算

评分 0, 满分 5 星
0 票

O(26 * n^2)暴力来的。首先预处理出每个word是否包含某个字母,然后枚举每个单词对,O(26)判断出是否有相同字符,不相同更新答案。第一次提交的时候开了26个Hash Table判断,T了。看到Tags写的位运算,想想应该是把每个单词处理成26位然后&运算判断,这样就能优化掉26的常数从而使复杂度变为O(n^2)

评分 0, 满分 5 星
0 票

最简便的做法当然是位运算了,之前我有写过一些常见位运算运算,点这里,看一下就明白了。

Comments Off on [LeetCode]Reverse Bits

评分 0, 满分 5 星
0 票

归类为位运算,是说解决本题的程序中用到了位运算。个人感觉更多的还是想法,这道题的实质是要设计出一种运算符#,对一个数字n,有n # n # n = 0。满3清0,容易让人想到三进制,但这里如果做进制相关的算法就不太划算了。不过可以用二进制位去模拟,具体来说: 可以用变量 one 记录处理到当前元素为止,二进制 1 出现“1 次”(mod 3 之后的 1)的二进制位有哪些,用变量two 记录处理到当前元素为止,二进制 1 出现“2 次”(mod 3 之后的 2)的二进制位有哪些,当 one 和 two 中的某一位同时为 1 时表示该二进制位上 1 出现了 3 次,此时需要清零。 最终的结果保留在了one里。