
算法-位运算
sparksnail
这个作者很懒,什么都没留下…
展开
-
nowcoder 交换
题目 请编写一个算法,不用任何额外变量交换两个整数的值。 给定一个数组num,其中包含两个值,请不用任何额外变量交换这两个值,并将交换后的数组返回。 测试样例: [1,2] 返回:[2,1] 思路 使用亦或或者加减操作。 代码1 class Swap: def getSwap(self, num): # write code here原创 2018-01-31 19:27:36 · 265 阅读 · 0 评论 -
nowcoder 比较
题目 对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。 给定两个整数a和b,请返回较大的数。 测试样例: 1,2 返回:2 思路 计算a−b'>a−ba−ba-b的值,取得a的符号和b的符号。 代码 class Compare: def flip(self, n): retur原创 2018-01-31 20:09:23 · 255 阅读 · 0 评论 -
nowcoder 寻找奇数出现
题目 有一个整型数组A,其中只有一个数出现了奇数次,其他的数都出现了偶数次,请打印这个数。要求时间复杂度为O(N),额外空间复杂度为O(1)。 给定整形数组A及它的大小n,请返回题目所求数字。 测试样例: [1,2,3,2,1],5 返回:3 思路 用一个数和所有的数字进行亦或运算,最后得到的数字就是所求。 代码 class OddAppearance: def fi原创 2018-01-31 20:10:29 · 208 阅读 · 0 评论 -
nowcoder 寻找奇数出现II
题目 给定一个整型数组arr,其中有两个数出现了奇数次,其他的数都出现了偶数次,找到这两个数。要求时间复杂度为O(N),额外空间复杂度为O(1)。 给定一个整形数组arr及它的大小n,请返回一个数组,其中两个元素为两个出现了奇数次的元素,请将他们按从小到大排列。 测试样例: [1,2,4,4,2,1,3,5],8 返回:[3,5] 思路 首先计算出两个奇数的亦或值,然后得到这个值的为原创 2018-01-31 20:12:28 · 208 阅读 · 0 评论 -
LeetCode 137. Single Number II
题目 Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one. Note: Your algorithm should have a linear runtime complexity. Cou...原创 2018-04-01 14:42:08 · 159 阅读 · 0 评论 -
LeetCode 136. Single Number
题目 Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using e...原创 2018-04-01 14:47:06 · 113 阅读 · 0 评论