算法中常用函数
1、交换数值(异或运算)
void swap(int *a,int *b):{
*a^=*b;
*b^=*a;
*a^=*b;
}
2、返回三个数最大值
float max(float a,float b,float c){
return a>b?(a>c?a:c):(b>c?b:c);
}
3、返回整型的二进制表示中“1”的个数
int nomberOf1(int n){
int count = 0;
for(int i=0;i<32,i++){
if ((n>>i)&1){
count+=1;
}
}
return count;
}
正数使用源码表示,负数使用补码表示。在C语言中,整数右移则左侧填充符号位的值;整数左移,右侧填充0。C语言在16位的编译器中int型为2字节,在32位和64位的编译器中int型为4字节。
4、把数组排成最小数(最大数)
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
#python版
def printMinNumber(number):
if not number:
return ''
lmb = lamdba x1,x2:int(str(x1)-str(x2))-int(str(x2)-str(x1))
array = sorted(number,cmp=lmb)
return ''.join([str(i) for i in array])