🚀 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 或者想在解题上保持一致性,欢迎一起成长。

联系方式

一次解决一个问题。坚持比强度更重要。

0 浏览
Back to Blog

相关文章

阅读更多 »

Algorhymer的传说:Supply Stacks

引言 又一个带配乐的计算机科学故事!上一次,故事是关于一个被操纵的游戏…https://dev.to/algorhymer/tales-of-the-algorhym...