博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交换、比较
阅读量:7244 次
发布时间:2019-06-29

本文共 672 字,大约阅读时间需要 2 分钟。

交换

比较

交换

请编写一个算法,不用任何额外变量交换两个整数的值。
给定一个数组num,其中包含两个值,请不用任何额外变量交换这两个值,并将交换后的数组返回。
测试样例:
[1,2]
返回:[2,1]

-- coding:utf-8 --

class Swap:

def getSwap(self, num):

write code here

num[0] = num[0] ^ num[1]    num[1] = num[0] ^ num[1]    num[0] = num[0] ^ num[1]    return num

比较

对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。
给定两个整数a和b,请返回较大的数。
测试样例:
1,2
返回:2

-- coding:utf-8 --

class Compare:

#如果符号为0,那么得到1,如果符号为1,那么得到0
def flip(self,n):
return 1^n
#获取符号位,返回值1代表非负数,0代表负数
def get_sign(self,n):
return self.flip((n>>31)&1)

def getMax(self,a,b):    c = a-b    scA = self.get_sign(c)    scB = self.flip(scA)    return a*scA+b*scB

转载于:https://blog.51cto.com/13545923/2054443

你可能感兴趣的文章
1297 硬币
查看>>
ORA-01665 control file is not a standby control file
查看>>
pycharm 文件名不显示中文的解决方法
查看>>
340 - Master-Mind Hints
查看>>
python多进程并发
查看>>
微信分享调用 -- c#篇
查看>>
Python面向对象编程(IDE:Pycharm)
查看>>
@angular/cli项目构建--Dynamic.Form(2)
查看>>
react: menuService
查看>>
无线网卡与本地连接不能同时使用&一机多网络的优先级设置
查看>>
正则表达式
查看>>
BFS模板
查看>>
SQL server 2008(Linux安装)
查看>>
网络编程
查看>>
ThinkPHP快捷函数
查看>>
搭建企业内部yum仓库(centos6+centos7+epel源)
查看>>
zabbix系列(十)zabbix添加对zookeeper集群的监控
查看>>
前后端分离下如何登录
查看>>
【Android OpenGL ES】阅读hello-gl2代码(一)准备工作
查看>>
关于逻辑或和逻辑与的实际用处
查看>>