【发布时间】:2020-07-27 10:25:58
【问题描述】:
我正在尝试运行以下代码:
int across(vector<int> &nums, int l , int m, int h){
int i = l, j = m +1;
int count = 0;
unsigned long long int n;
unsigned long long int prev;
while(i <= m && j <=h){
n = 2* nums[j];
prev = nums[i];
if(prev > n){
count += m - i +1;
j++;
}
else{
i++;
}
}
return count;
}
nums 是一个从索引 l 到 m 以及从索引 m+1 到 h 排序的向量。
我必须计算对数(i,j)这样nums[i] > 2 * nums[j]
当元素之一是 2147483647 时,我收到运行时错误。
我尝试使用 long long int 和 unsigned long long int 但仍然显示相同。
请帮我摆脱这个。
【问题讨论】:
标签: c++ runtime-error runtime unsigned signed