classSolution{public:intfindMaxK(vector<int>& nums){sort(nums.begin(), nums.end());int n = nums.size();int i =0, j = n -1;while(i < j &&-nums[i]!= nums[j]){if(abs(nums[i])> nums[j]){
i++;}else j--;}if(i < j)return nums[j];return-1;}};
6205. 反转之后不同整数的数目
代码实现
classSolution{private:intReverse(int num){int tmp = num;
vector<int> v;while(tmp){
v.push_back(tmp %10);
tmp /=10;}int ans =0;for(int i =0; i < v.size(); i++) ans = ans *10+ v[i];
cout << num <<" "<< ans << endl;return ans;}public:intcountDistinctIntegers(vector<int>& nums){
set<int> st;for(int i =0; i < nums.size(); i++){
st.emplace(nums[i]);
st.emplace(Reverse(nums[i]));}return st.size();}};
6219. 反转之后的数字和
代码实现
classSolution{private:intReverse(int a){int b =0;while(a){
b= b *10+ a %10;
a /=10;}return b;}public:boolsumOfNumberAndReverse(int num){if(num ==0)returntrue;int count =0;int tmp = num;int upperNum =0;while(tmp){
count +=1;
upperNum = tmp;
tmp /=10;}for(int i = num /2; i <= num; i++){if(i +Reverse(i)== num)returntrue;}returnfalse;}};
6207. 统计定界子数组的数目
代码实现
classSolution{private:int minK, maxK;longlongCount(vector<int>& nums,int l,int r){int mi, ma;longlong res =0;for(int i = l; i <= r; i++){
mi = nums[i], ma = nums[i];for(int j = i; j <= r; j++){
mi =min(mi, nums[j]);
ma =max(ma, nums[j]);if(mi == minK && ma == maxK){
res += r - j +1;break;}}}return res;}public:longlongcountSubarrays(vector<int>& nums,int minK,int maxK){
vector<int> obstacles;this->minK = minK;this->maxK = maxK;int n = nums.size();
obstacles.push_back(-1);for(int i =0; i < n; i++){if(nums[i]< minK || nums[i]> maxK) obstacles.push_back(i);}
obstacles.push_back(n);longlong res =0;for(int i =0; i < obstacles.size()-1; i++){if(obstacles[i +1]- obstacles[i]<=1)continue;
res +=Count(nums, obstacles[i]+1, obstacles[i +1]-1);}return res;}};