🚀 LeetCode Top 150 — 进度日志 #1
发布: (2026年3月1日 GMT+8 18:06)
2 分钟阅读
原文: Dev.to
Source: Dev.to
进度
我已经正式开启了 Top 150 LeetCode 之旅,以巩固数据结构与算法的基础。
进度: 已解决 3 / 150 道题目。
我并不是急于刷题,而是注重理解模式、提升推理能力,并随着时间写出更简洁的解法。
方法:合并有序数组(基于指针的合并)
关键学习点: 使用指针式合并,而不是单纯依赖排序。
class Solution {
public:
vector merge(vector& nums1, int m, vector& nums2, int n) {
// Copy nums2 into the tail of nums1
for (int i = m; i nums1[j + 1]) {
swap(nums1[j], nums1[j + 1]);
}
}
}
return nums1;
}
};
思路: 编写一个指针(idx)在原地覆盖不需要的值。
方法:移除元素
关键学习点: 覆盖需要保留的元素并返回新的长度。
class Solution {
public:
int removeElement(vector& nums, int val) {
int idx = 0;
for (int i = 0; i & nums) {
if (nums.empty()) return 0;
int idx = 1;
for (int i = 1; i < nums.size(); ++i) {
if (nums[i] != nums[i - 1]) {
nums[idx++] = nums[i];
}
}
return idx;
}
};
综合体会
早期的 DSA 题目看似简单,却能帮助养成关键习惯:
- 原地思考
- 最小化额外内存
- 识别可复用的模式
这项挑战并非追求速度,而是持续的提升。
下一目标
📍 下一目标: 继续在 Top 150 题目中前进。
如果你也在学习 DSA 或者想在解题上保持一致性,欢迎一起成长。
联系方式
- GitHub: https://github.com/CodeWithDeeksh
- X (Twitter): https://x.com/deekshithax
一次解决一个问题。坚持比强度更重要。