杜鹃声

guest@杜鹃声 ~ $
$ cat /etc/motd
$ _
Leetcode

两两交换链表中的节点

Problem statement两两交换链表相邻节点,不能修改节点的值 My Solution思路先创建一个哑节点,连接链表的起始位置,创建一个指针指向哑节点。先检查是不是空链表,是的话直接返还没有连接哑巴节点的原始链表。随后进入一个while循环,条件是指针节点的下一个节点不是空节点且下一个节点的下一个节点也不是空节点。进入循环后,让指针节点指向下一位的下一位,指针节点的下一位指向指针节点的下...

2026-07-25 2 min
Leetcode

三数之和

固定左边界,两个指针在右半区间夹逼 1234567891011121314151617181920212223242526272829303132333435363738394041#include<vector>#include<algorithm>using namespace std;class Solution{ public: vector<ve...

2025-02-28 1 min
Leetcode

一周刷题

1 周刷题计划(侧重哈希→双指针→栈队列→图搜索→贪心) Day 1 哈希表 知识:哈希表 O(1) 查找、冲突概念;unordered_map/unordered_set 用法。题单:Two Sum、Two Sum II(有序用双指针对比)、Valid Anagram、Isomorphic Strings。练习:一遍哈希 vs 两遍哈希,写出复杂度;手推哈希表状态。Day 2 双指针 ...

2025-02-28 2 min
Leetcode

两数之和

完成代码 123456789101112131415class Solution {public: vector<int> twoSum(vector<int> &nums, int target) { unordered_map<int, int> idx; // value -> index for (int i = 0;...

2025-02-28 1 min
Leetcode

两数相加

:::info给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 ::: 思路:首先判断12两个表谁长谁端,最长的链表长求出来并设定为max,然后设出最后的答案表3,目前是全空状态。分别遍历12两个表,分三种情况,...

2025-02-28 3 min
Leetcode

判断整数回文

12345678910111213141516171819202122#include<iostream>#include<string>using namespace std;class Solution{ public: bool isPalindrome(int x){ string str = to_string(x); int left =0,...

2025-02-28 1 min
Leetcode

合并两个有序链表

一开始有好几处大错误 你这版代码的问题不是一个点,而是有几处核心逻辑都错了,所以基本过不了。 最致命的有 4 个: 你的 while 条件写错了你写的是: 1while(l1->next != nullptr && l2->next != nullptr) 这会直接漏掉最后一个节点,而且如果某个链表一开始就是空的,还会空指针访问。正确判断应该是看当前节点本身是不是...

2025-02-28 2 min
Leetcode

## 题目要点

题目要点 给定一个整数数组 nums 和目标值 target,找出所有不重复的四元组 [a, b, c, d],使得 a + b + c + d == target。 结果中不能有重复四元组。 核心思路 先对数组排序。 固定前两个数 nums[i]、nums[j]。 剩下两个数用双指针 left、right 在有序数组中夹逼查找。 遇到命中结果时,把四元组加入答案,并跳过重复值。 为什么这样做...

2025-02-28 2 min
Leetcode

寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 示例 1: 123输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 123输入:nums1 = [1,2], nums2 = [...

2025-02-28 2 min
Leetcode

括号生成

感觉是最近最难的一道题 首先想到的思路是深度优先,遍历括号的左中右三个位置递归生成,为了防止重复所以用无重复集合unordered_set来保存每一轮的结果。为了防止多轮 12345678910111213141516171819202122232425262728293031323334353637#include<unordered_set>#include<string&...

2025-02-28 3 min
ESC
search_empty