文章目录
一、leetcode-75
(一)字符串/数组
1.1768.交替合并字符串
两个指针,你一下,我一下
2.1071.字符串的最大公因子
加起来不等直接返回,相等的话返回字符串长度的最大公约数。
3.1431. 拥有最多糖果的孩子
BOOL数组,每个加+糖果和最大的孩子比。
4.605. 种花问题
当前位置没种花,前面要么没有花, 要么是边界,后面要么没有花,要么是边界
5.345. 反转字符串中的元音字母
unordered_set<char> vowels,双指针。
6.151. 反转字符串中的单词
stringstream ss(s)
while (ss >> word) s -> ss -> word
7.238. 除自身以外数组的乘积
l[i] = l[i - 1] * nums[i - 1]; 1 len
r[i] = r[i + 1] * nums[i + 1]; len - 2 0
8.334. 递增的三元子序列
> 小于三直接返回
> first = 第一个 second = max 如果第三个大于max 则返沪
> 如果 大于 > first second = num
> 否则 first = num
9.443. 压缩字符串
while (i < n) {
int idx = i;
while (idx < n && chars[idx] == chars[i]) idx ++;
int cnt = idx - i;
chars[j ++] = chars[i];
if (cnt > 1) {
string s = to_string(cnt);
for (auto c : s) chars[j ++] = c;
}
i = idx;
}
(二)双指针
10.283. 移动零
双指针:
int i = 0,j = 0;
for (j = 0; j < nums.size(); j++) {
if (nums[j] != 0) {
nums[i ++] = nums[j];
}
}