- 博客(18)
- 收藏
- 关注
原创 25. K 个一组翻转链表(C语言)
4.将反转后的最后一个节点(即prev指向的节点的下一个节点)指向反转的k个节点的下一个节点,即将反转后的k个节点和这k个节点后面的节点相连。3.反转k个节点,首先定义指针a,b,指向要反转的2个节点,一共反转k-1次,相当于反转了k个节点。5.将prev指向的节点,即反转的k个节点的前一个节点,和k个节点反转后的第一个节点相连。2.进入循环,每次处理k个节点的反转,如果不足k个,直接返回结果。1.定义prev指针,指向反转的k个节点的前一个节点。7.重复2~6这个过程。
2025-05-16 16:08:43
209
原创 11. 盛最多水的容器(C语言)
采用双指针法解决,一个指针指向数组头,一个指向数组尾,计算当前两个指针指向的高度组成的容器的容积,更新容积的最大值,比较两个指针所指高度的大小,将高度较小的指针向另一个指针方向移动,直到相遇。
2025-04-21 14:14:05
224
原创 7.整数反转(C语言)
本题的难点在于如何不使用64位整数判断是否溢出。在每次更新结果之前对当前结果做一次判断,如果当前结果在下一次result * 10 + pop之后会超出int的范围,说明结果将会溢出,返回0。
2025-04-17 13:35:20
107
原创 leetcode-6. Z 字形变换(C语言)
遍历字符串,计算字符串中每一个字符在Z字变换后在第几行。例如,如果输入的numRows为4,那么变换后字符所在的行位置依次为0,1,2,3,2,1,0,1,2,3,2,1,0…同一行的字符拼接在一起,最后按行输出最终的结果。时间复杂度O(N),空间复杂度O(N)。
2025-04-16 20:12:55
201
原创 leetcode-5. 最长回文子串(C语言)
采用中心扩展法,首先选定回文中心(分奇数偶数两种情况,奇数为单个字符,偶数为两个字符)。然后以中心为起点向两边扩展,左右两边字符相等且该子串为当前最大长度子串,则更新回文子串的起始位置和长度,若非最大长度子串,则继续向两边扩展,直到两边不相等或者超出字符串边界,结束扩展。给你一个字符串 s,找到 s 中最长的 回文 子串。示例 1: 输入:s = “babad”解释:"aba"同样是符合题意的答案。示例 2: 输入:s = “cbbd”
2025-04-15 13:20:50
343
原创 LeetCode热题100——4.寻找两个正序数组的中位数(C语言)
但是题目对时间复杂度提出了要求,这也是这道题的难点所在。要让时间复杂度为log级别的,顺序遍历肯定是不行的,要用二分查找的思想。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。时间复杂度为O(Log(Min(M,N))),空间复杂度为O(1)。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]算法的时间复杂度应该为 O(log (m+n))。解释:合并数组 = [1,2,3] ,中位数 2。
2025-04-14 19:10:34
353
原创 LeetCode热题100——3. 无重复字符的最长子串(C语言实现)
使用滑动窗口的思想解决,滑动窗口是一个在字符串上不停移动的子串区间。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。: 因为无重复字符的最长子串是 “b”,所以其长度为 1。O(N)时间复杂度,O(1)空间复杂度。
2025-04-13 17:39:37
307
原创 LeetCode 热题 100——2.两数相加
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2025-04-12 20:31:13
309
原创 LeetCode 热题 100——1.两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。
2025-04-11 17:26:20
240
原创 05-树8 File Transfer (25 分)
We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any other?Input Specification:Each i
2022-04-05 13:50:08
986
原创 02-线性结构3 Reversing Linked List (25 分)
02-线性结构3 Reversing Linked List (25 分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4
2022-03-15 08:54:07
439
原创 汉诺塔——经典递归问题(Python语言实现)
问题背景汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。思路分析首先给三个柱子依次编号为A、B、C 假设需要移动n个盘子,那么移动的步骤主要分三步1.把A柱子上的除了最下面的那一片圆盘的n-1个圆盘借助C柱子移动到B柱子2.把A柱子
2021-12-20 19:21:20
5018
原创 7-2 然后是几点 (15 分) java版
有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。输入格式:输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的
2021-11-29 18:23:51
269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人