該問題可分解為求陣列中第乙個不小於left的下標和求陣列中最後乙個不大於right的下標。
#include
#include
//求陣列中第乙個不小於left的下標
int firstnotlower(const
std::vector
& num, const
int left)
//low和high相鄰後,分別與left比較來判斷返回值
//這裡包含num元素個數為1或2的情況
if (num[low] >= left)
return low;
else
if (num[high] < left)
return -1;
else
return high;
}//求陣列中最後乙個不大於right的下標
int lastnothigher(const
std::vector
& num, const
int right)
//low和high相鄰後,分別與right比較來判斷返回值
//這裡包含num元素個數為1或2的情況
if (num[high] <= right)
return high;
else
if (num[low] > right)
return -1;
else
return low;
}//主問題求解
int getinterval(const
std::vector
& num, int left, int right, std::vector
& res)
int main() ;
//std::vectornum(&a[0],&a[17]);
std::vector
num(a,a + sizeof(a) / sizeof(int));
std::vector
res;
int n = getinterval(num, 33, 99, res);
if (n == -1)
else
if (n == -2)
else
return
0;}
注意main函式中的注釋行,其結果是將前16個值賦值給vector,別問我是怎麼弄的這個奇葩寫法!!!( ✘_✘ )↯ 有序陣列求平方有序對應陣列
977給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。示例 1 輸入 4,1,0,3,10 輸出 0,1,9,16,100 示例 2 輸入 7,3,2,3,11 輸出 4,9,9,49,121 有序,陣列,平方,還有序 1 直接平方之後重新排一下,so...
演算法 有序陣列求目標和
在有序陣列中找出兩個數,使它們的和為 target.例如 array target 為 6 則 返回和為 6 的 array下標 使用雙指標,乙個指標指向值較小的元素,乙個指標指向值較大的元素。指向較小元素的指標從頭向尾遍歷,指向較大元素的指標從尾向頭遍歷。param nums the sorted...
23 刪除有序陣列中的元素,陣列仍然有序 陣列
刪除乙個有序陣列的乙個元素,採用兩個陣列實現 實現 2017年6月19日16 16 31 功能 刪除陣列中乙個資料之後陣列依然有序 include stdio.h define m 9 int main int b m 1 int i,j,num bool flag printf 請輸入將要刪除的資...