自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 【leetcode第17题—探究电话号码的字母组合】

给定一个仅包含数字 2-9 的字符串,返回所有可能的字母组合。2 -> "abc"3 -> "def"4 -> "ghi"5 -> "jkl"6 -> "mno"8 -> "tuv"通过本篇博客,我们学习了如何利用回溯算法来生成电话号码的所有可能字母组合。

2024-04-15 10:43:32 218 1

原创 【leetcode第16题—求最接近目标值的三数之和】

给定一个整数数组nums和一个目标值target,要求在数组中找到三个整数,使得它们的和与目标值target最接近。返回这三个整数的和。对数组排序的时间复杂度为 O(nlogn),外部循环遍历数组的时间复杂度为 O(n),内部双指针遍历的时间复杂度为 O(n),因此总的时间复杂度为 O(nlogn + n^2) = O(n^2)。空间复杂度为 O(1),因为只使用了常数级别的额外空间。

2024-04-07 23:10:53 255

原创 【leetcode第15题—解决三数之和问题】

给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。示例 1:不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。示例 2:[]唯一可能的三元组和不为 0。示例 3:[[0,0,0]]唯一可能的三元组和为 0。双指针法与排序是解决三数之和问题的一种高效方法,其时间复杂度为 O(n^2),其中 n 是数组的长度。

2024-04-07 23:07:57 332

原创 【leetcode第14题—寻找最长公共前缀:Python解决方案】

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:"fl"示例 2:""输入不存在公共前缀。strs[i]仅由小写英文字母组成对于给定的 n 个字符串,假设最长公共前缀的长度为 m,那么该算法的时间复杂度为 O(m*n),其中 m 是最长公共前缀的长度,n 是字符串数组的长度。空间复杂度为 O(1),因为我们只使用了常数级别的额外空间。

2024-04-07 23:07:26 230

原创 【leetcode第13题—罗马数字转整数】

罗马数字包含以下七种字符:IVXLCD和M。字符数值例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。I可以放在V(5) 和X(10) 的左边,来表示 4 和 9。X可以放在L(50) 和C。

2024-04-07 23:04:45 235

原创 【leetcode第12题—使用Python将整数转换为罗马数字】

罗马数字包含以下七种字符:IVXLCD和M。字符数值例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为XII。27 写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。I可以放在V(5) 和X(10) 的左边,来表示 4 和 9。X可以放在L(50) 和C。

2024-04-01 10:47:29 681

原创 【leetcode第11题—最大容器装水问题】

给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。示例 1:49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:1双指针法是解决最大容器装水问题的一种高效方法,其时间复杂度为 O(n),其中 n 是数组的长度。

2024-03-28 20:36:31 308

原创 【leetcode第10题—正则表达式匹配】

给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例 1:false"a" 无法匹配 "aa" 整个字符串。示例 2:true因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。示例 3:true".*" 表示可匹配零个或多个('*')任意字符('.')

2024-03-28 20:35:48 253

原创 【leetcode第9题—回文数】

给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。示例 1:x = 121true示例 2:x = -121false从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。示例 3:x = 10false从右向左读, 为 01。因此它不是一个回文数。通过这篇博客,我们学习了如何使用Python编写一个简单的函数来判断整数是否为回文数。

2024-03-28 20:29:17 129

原创 【leetcode第8题—字符串转换为整数(atoi)】

请你来实现一个函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的atoi函数)。函数读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为0。

2024-03-12 17:10:06 1276 1

原创 【leetcode第7题—如何反转32位有符号整数?Python实现解析】

反转32位有符号整数

2024-03-12 10:58:41 349 1

原创 【leetcode第6题—Z字形变换:优雅排列字符串】

将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为行数为3时,排列如下:Y I R。请你实现这个将字符串进行指定行数变换的函数:示例 1:示例 2:Y A H RP I示例 3:"A"s由英文字母(小写和大写)、','和'.'组成Z字形变换是一道巧妙而实用的字符串排列问题。通过模拟字符排列的过程,我们可以高效地得到按指定行数进行Z字形排列的字符串。

2024-03-11 10:05:20 356

原创 【leetcode第5题—最长回文子串】

给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例 1:"bab""aba" 同样是符合题意的答案。示例 2:s = "cbbd""bb"s仅由数字和英文字母组成通过动态规划方法,我们可以高效地找到给定字符串中的最长回文子串。通过将复杂问题分解为简单的子问题,并使用存储子问题解的方法,我们避免了重复计算,从而提高了算法的效率。总的来说,这种方法在解决最长回文子串问题上具有很高的实用性和可行性。

2024-03-10 20:41:15 331

原创 【leetcode第4题—寻找两个正序数组的中位数】

给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为 O(log (m+n))。示例 1:2.00000合并数组 = [1,2,3] ,中位数 2示例 2:2.50000合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5二分查找法和暴力合并法都可以用来找到两个已排序数组的中位数。首先,二分查找法是一种更高效的方法,它通过二分查找在不合并数组的情况下找到中位数。

2024-03-10 20:28:29 1705

原创 【leetcode第3题—无重复字符的最长子串的Python算法】

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入:输出:3因为无重复字符的最长子串是"abc",所以其长度为 3。示例 2:输入:输出:1解释:因为无重复字符的最长子串是"b",所以其长度为 1。示例 3:输入:输出:3解释:因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是子串的长度,"pwke"是一个子序列,不是子串。s由英文字母、数字、符号和空格组成。

2024-03-09 22:27:10 388 1

原创 【leetcode第2题—逆序链表相加的Python算法】

给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:[7,0,8]示例 2:[0]示例 3:每个链表中的节点数在范围[1, 100]内题目数据保证列表表示的数字不含前导零。

2024-03-09 22:17:05 316

原创 【leetcode第1题—高效解决Two Sum问题的Python算法】

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。

2024-03-06 21:32:30 314

原创 Dijkstra算法解析

Dijkstra算法使用了一种逐步扩展的策略,通过不断选择距离起始节点最近的节点来找到最短路径。

2023-11-19 13:51:25 42

Dijkstra算法(C语言版)

Dijkstra算法的目标是找到从起始节点到图中所有其他节点的最短路径。使用了一种逐步扩展的策略,通过不断选择距离起始节点最近的节点来找到最短路径。算法通过维护一个距离数组,记录从起始节点到每个节点的当前已知最短距离。在每一步中,选择距离最小的节点,更新与其相邻节点的距离,并标记该节点为已访问。

2023-11-19

分秒时钟,用到80C51单片机键盘和四位数码管

分秒时钟,用到键盘和四位数码管,大学80C51单片机基础大作业

2021-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除