算法-位运算
sparksnail
这个作者很懒,什么都没留下…
展开
-
nowcoder 交换
题目请编写一个算法,不用任何额外变量交换两个整数的值。 给定一个数组num,其中包含两个值,请不用任何额外变量交换这两个值,并将交换后的数组返回。 测试样例: [1,2] 返回:[2,1]思路使用亦或或者加减操作。代码1class Swap: def getSwap(self, num): # write code here原创 2018-01-31 19:27:36 · 251 阅读 · 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 · 242 阅读 · 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 · 190 阅读 · 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 · 193 阅读 · 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 · 146 阅读 · 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 · 101 阅读 · 0 评论