2024
February
1 | class Solution { |
March
1090
由于题目中的 $\textit{values}$ 和 $\textit{labels}$ 是分成两个数组给出的,直接排序会比较困难。我们可以额外开辟一个同样长度为 $n$ 的数组,存储下标,并直接在该数组上进行排序即可。
1 | int largestValsFromLabels(vector<int>& values, vector<int>& labels, int numWanted, int useLimit) { |
April
2810 故障键盘
- 使用双端队列进行模拟
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22class Solution {
public:
string finalString(string s) {
deque<char> q;
bool head = false;
for (char ch: s) {
if (ch != 'i') {
if (head) {
q.push_front(ch);
}
else {
q.push_back(ch);
}
}
else {
head = !head;
}
}
string ans = head ? string{q.rbegin(), q.rend()} : string{q.begin(), q.end()};
return ans;
}
};
2020
October
0005 最长回文子串
解法一:动态规划
1 | string longestPalindrome(string s) { |
解法二:中心拓展算法
0011 盛最多水的容器
没有优化的两层 for 循环:TLE
解法一:双指针法【移动两边的指针,以找到最优解】
0015 三数之和
解法一:排序 + 双指针
- 失败的做法:试图同时移动两个指针;
- 正确的做法:先确定一个元素的位置,然后移动两个指针;
0045 跳跃游戏
贪心算法:通过局部最优解得到全局最优解
解法一:反向查找出发位置(时间复杂度较高)
1 | // 此处使用 C++ 会 TLE |
解法二:正向查找可达到的最大位置
1419 数青蛙
记录每只青蛙叫到哪里(c r o a k)
遇到 c 时,判断是否有青蛙空闲(k),否则添加新的青蛙
- Title:
- Author: Kaleido
- Created at : 2024-03-14 15:13:55
- Updated at : 2024-04-11 00:35:26
- Link: https://redefine.ohevan.com/2024/03/14/leetcode/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments