-
接口说明
原型:
unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)
输入参数:
input 输入的整数
startbit 需要获取的开始bit
bitlen 需要获取的bit长度
输出参数(指针指向的内存区域保证有效):
无
返回值:
对应的bit取值
举例:
输入:4, 2, 2
返回:2
4对应的二进制为100(bit0和bit1为0,bit2为1),那么从bit2开始的2位为10,那么对应的十进制为2。
#include <stdlib.h>
#include <string.h>
#include "oj.h"
/*
功能:
输入:pIntArray:数组,nCout:数组长度
输出:
返回:返回最大值
*/
int GetSubArraySum(int* pIntArray, int nCount)
{
/*在这里实现功能*/
int ThisSum,MaxSum,j;
ThisSum = MaxSum =0;
for(j = 0;j < nCount;j++)
{
ThisSum += pIntArray[j];
if(ThisSum > MaxSum)
MaxSum = ThisSum;
else if(ThisSum < 0)
ThisSum = 0;
}
return MaxSum;
}</span>
算法思路:
利用整数转换为2进制思路,先将数存入数组,然后读出指定位数.
本文介绍了一种获取整数中特定位数值的方法,并提供了一个子数组最大和的算法实现。通过位操作获取指定长度的二进制位值,并展示了如何计算一个整数数组中所有可能连续子数组的最大和。
1001

被折叠的 条评论
为什么被折叠?



