不重複列印排序陣列中相加和為給定值的所有二元組和三元組
未排序正數陣列中累加和為給定值的最長子陣列長度
未排序陣列中累加和為給定值的最長子陣列系列問題
未排序陣列中累加和小於或等於給定值的最長子陣列長度
可整合陣列的定義:如果乙個陣列在排序之後,每相鄰兩個數差的絕對值都為1,則該陣列為可整合陣列。如[5, 3, 4, 6, 2]排序之後為[2, 3, 4, 5, 6]。符合每相鄰兩個數差的絕對值為1.所以這個陣列為可整合陣列。
給定乙個整型陣列arr,返回其中最大可整合子陣列的長度。
逐個子陣列排序後進行判斷的話複雜度比較高,達到o(n^3logn)。可以用max-min == j - i這種方式來判斷。這樣可以將排序的o(nlogn)降到o(1)
#include
#include
#include
#include
using
namespace std;
bool
isintegrated
(vector<
int> arr,
int left,
int right)
return
true;}
intgetlil1
(vector<
int> arr)
}return len;
}int
getlil2
(vector<
int> arr)
s.clear()
;}return len;
}int
main()
未完待續…(11.30)
給定排序陣列arr和整數k,不重複列印arr中所有相加和為k的不降序二元組。
補充題目:給定排序陣列arr和整數k,不重複列印arr中所有相加和為k的不降序三元組。
#include
#include
using
namespace std;
void
printuniquepair
(int
* arr,
int k,
int len)}}
void
printrest
(int
* arr,
int f,
int l,
int r,
int k)}}
void
printuniquetri
(int
* arr,
int len,
int k)
}int
main()
給定陣列arr,該陣列無序,每個值均為正數,在給定乙個整數k,求arr的所有子陣列中所有元素相加和為k的最長子陣列長度。
如:arr=[1, 2, 1, 1, 1],k=3;累加和為3的最長子陣列為【1,1,1】,所以返回結果為3.
#include
#include
using
namespace std;
intgetmaxlen
(int
* arr,
int len,
int k)
else
if(sum < k)
else
sum -
= arr[left++];
}return maxsize;
}int
main()
給定乙個無序陣列arr,其中元素可正,可負,可0.給定乙個整數k,求arr所有子陣列中累加和為k的最長字陣列長度
補充題目1:給定無序陣列arr,其中元素可正,可負,可0.求arr所有子陣列中正數與負數個數相等的最長子陣列長度
補充題目2:給定乙個無序陣列arr,其中元素只是1或0.求arr中所有子陣列0和1個數相等的最長子陣列長度。
兩個補充題目可以根據原問題的原理將正數或負數做替換,進一步得到對應解。
原問題解如下:
#include
#include
#include
using
namespace std;
intmaxlen
(int
* arr,
int len,
int k)
return maxsize;
}int
main()
給定乙個無序陣列arr,其中元素可正,可負,可0.給定乙個整數k,求arr所有的子陣列中累加和小於或等於k的最長子陣列長度。
如:arr=【3,-2,-4,0,6】,k=-2;相加和小於或等於-2的最長子陣列為【-3,-2,-4,0】,長度為4.
#include
#include
using
namespace std;
intgetlessindex
(int
* arr,
int num,
int len)
else
}return res;
}int
maxlength
(int
* arr,
int k,
int len)
sum =0;
int res =0;
int pre =0;
int maxlen =0;
for(
int i =
0; i < len; i++
)return res;
}int
main()
大失誤,週末比較放鬆,學習不能!學校網速讓我望課興嘆! 陣列 長度最小的子陣列
給定乙個含有n個正整數的陣列和乙個正整數s 找出該陣列中滿足其和 s的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。高階 如果你已經完成了o n 時間複雜度的解法,...
最大可整合子陣列長度
先給出可整合陣列的定義 如果乙個陣列在排序之後,每相鄰兩個數的差的絕對值都為1,或者該陣列長度為1,則該陣列為可整合陣列。例如,5,3,4,6,2 排序後為 2,3,4,5,6 符合每相鄰兩個數差的絕對值都為1,所以這個陣列為可整合陣列 給定乙個陣列arr,請返回其中最大可整合子陣列的長度。例如,5...
js陣列長度獲取問題?
var test new array test test1 1 test test2 2 test 2 3 test length 輸出3 首先 test test1 1 和 test test2 2 都是屬性,可以通過test.test1 這樣來取值。但是 test 2 3 test.length...