0%

leecode_位运算

位运算类题目

位运算的题目,常规的思路就是异或为0的规律做。

剑指 Offer 56 - II. 数组中数字出现的次数 II

这个题很巧妙。一个数组中一个数字出现了 N 次,只有一个出现了1次,找出这个出现一次的数,可以知道,出现N次那么对应的位的和一定为N的倍数。对于所有元素的某一位,可能是 0 2N 3N 4N… 或着 1 2N+1 3N+1 …

矩阵置零

O(m+n) 的方法很好实现。主要是 O(1) 的方法。O(m+n) 的方法思路是设置一个标记数组,用于标记哪些行和列需要被置0,现在要求空间复杂度为O(1) 用到了原地标注的方法,如果数组中某个位置的元素为0,那么这一行列的数全要置0,因此反正都要设置为0的,可以将该行列标号先记下来,用作标记数组,即原地标记,最后其他的行列0都置完了 再对这行列清0。这个思想在 O(1) 的hash 方法中见过,题目给定的数组中元素都是正数,那么就可以用负数来作为标记,从而使得空间复杂度为O(1)