压缩字符串
题目链接:https://leetcode-cn.com/problems/string-compression/
class Solution {
public:
int compress(vector<char>& chars) {
int n = chars.size();
int cur = 0;
for(int i = 0, j = 0; i < n;)
{
j = i + 1;
while(j < n && chars[i] == chars[j]) j++;
if(j - i > 1)
{
chars[cur] = chars[i];
cur += 1;
string str = to_string(j - i);
for(auto s : str)
chars[cur++] = s;
}
else
chars[cur++] = chars[i];
i = j;
}
return cur;
}
};
成绩小于K的子数组
题目链接:https://leetcode-cn.com/problems/subarray-product-less-than-k/
class Solution {
public:
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
int n = nums.size();
int sum = 1;
int cnt = 0;
for(int i = 0, j = 0; j < n;)
{
sum *= nums[j++];
while(i < j && sum >= k)
sum /= nums[i++];
cout << j << " " << i << endl; // [i, j);
//[i, j)的子数组(包含i)个数是 j - i
cnt += j - i;
}
return cnt;
}
};