首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

两个简略算法求解

2013-10-29 
两个简单算法求解1. 一个四字节数,求其二进制中1的个数.2. 一数组,int a[] { ... } ,求使 a[j] - a[i] (

两个简单算法求解
1. 一个四字节数,求其二进制中1的个数.
2. 一数组,int a[] = { ... } ,求使 a[j] - a[i] (i < j )最大.
[解决办法]
1. 太常见了:

a,n=0;
while a
n++;
a &=(a-1);

2. 一个简单的思路:
令f(i)=a(i)-g(i),g(i)=min{a(0),a(1),,,a(i-1)},i>0,那么答案就是max{f(1),f(2),,,f(n-1)}
[解决办法]
第一题方法很多,查表是最快的,x&(x-1),还有&0X55555555的那个办法。。。。

热点排行