![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 66
01红C
宇宙超粒终端控制中心委员会地球分委——委员长
展开
-
leetcode13罗马数字转整数|算法详细讲解与分析
罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。IVXXLCCDM给定一个罗马数字,将其转换成整数。原创 2024-02-06 16:40:01 · 937 阅读 · 0 评论 -
leetcode9. 回文数|详细深入讲解算法
毕竟,如果该数字是回文,其后半部分反转后应该与原始数字的前半部分相同。例如,输入 1221,我们可以将数字 “1221” 的后半部分从 “21” 反转为 “12”,并将其与前半部分 “12” 进行比较,因为二者相同,我们得知数字 1221 是回文。映入脑海的第一个想法是将数字转换为字符串,并检查字符串是否为回文。第二个想法是将数字本身反转,然后将反转后的数字与原始数字进行比较,如果它们是相同的,那么这个数字就是回文。但是,如果反转后的数字大于 int.MAX,我们将遇到整数溢出问题。空间复杂度:O(1)。原创 2024-02-06 16:26:46 · 1168 阅读 · 0 评论 -
leetcode206反转链表|详细算法讲解学习
这道题对于刚开始学习数据结构和算法的人来说有点难,是入门的重要典型题目;但等数据结构入门之后,这就会是一道非常简单的题目了。原创 2024-02-04 19:30:58 · 498 阅读 · 0 评论 -
leetcode203.移除链表元素_多种算法详细讲解
接下来,使用递归的方式删除值为 val 的节点。然后,定义了一个名为 Solution 的类,其中包含一个公共方法 removeElements,该方法接受一个单链表的头结点 head 和一个整数 val 作为参数。然后,定义了一个名为 Solution 的类,其中包含一个公共方法 removeElements,该方法接受一个单链表的头结点 head 和一个整数 val 作为参数。这样,通过递归的方式遍历整个单链表,并将删除的节点指针返回给上一层递归调用,最终实现删除所有值为 val 的节点的功能。原创 2024-02-04 14:48:11 · 1132 阅读 · 0 评论 -
栈的应用:括号匹配问题_有效的括号
【代码】栈的应用:括号匹配问题_有效的括号。原创 2024-02-03 20:17:16 · 896 阅读 · 0 评论 -
leetcode189.轮转数组|超简单易于理解方法
给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。向右轮转 1 步:向右轮转 2 步:向右轮转 3 步:向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]原创 2024-02-01 14:59:59 · 582 阅读 · 0 评论 -
leetcode209长度最小的子数组|滑动窗口算法详细讲解学习
滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。:窗口有两类,一种是固定大小类的窗口,一类是大小动态变化的窗口。简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。给定一个含有 n 个正整数的数组和一个正整数 target**。**找出该数组中满足其和 ≥ target 的长度最小的[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度**。原创 2024-01-31 15:59:07 · 1061 阅读 · 0 评论 -
二分查找|详细讲解|两种写法
二分查找适用于从一个递增或递减的有序数列中查找某一个值用于查找的内容从逻辑上来看是有序的查找的数量只能是一个而不是多个在二分查找中,目标元素的查找区间的定义十分重要,不同的区间的定义写法不一样左闭右闭[left,right]左闭右开[left,right)原创 2024-01-29 18:11:24 · 1082 阅读 · 0 评论 -
leetcode283. 移动零|双指针
5. 此时i指向12,k指向第三个位置的0,i非零。i和k指向的位置交换数值,然后i和k都指向下一个位置---1,3,12,0,0。i和k指向的位置交换数值,然后i和k都指向下一个位置---1,0,0,3,12。i和k指向的位置交换数值,然后i和k都指向下一个位置---1,3,0,0,12。3. i指向第三个位置的0,k指向第二个位置的0,i不是非零,i继续指向下一个位置。采用2个指针i、k,i用于遍历数组,找到不为0的数组与k指向的位置的值进行交换。1. i、k都指向0,i不是非零,i指向下一个位置。原创 2024-01-29 15:38:16 · 393 阅读 · 0 评论 -
leetcode66. 加一
【代码】leetcode66. 加一。原创 2024-01-28 22:38:51 · 354 阅读 · 0 评论 -
leetcode26. 删除有序数组中的重复项
给你一个的数组nums,请你删除重复出现的元素,使每个元素,返回删除后数组的新长度。元素的应该保持。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为knumsnumsknumsnumsnumsk。原创 2024-01-28 17:35:09 · 541 阅读 · 1 评论 -
leetcode88合并两个有序数组
对于数组 1 和数组 2,将这两个数组看成是两个队列,这两个队列的队头元素分别是其当前所在队列里最小的值的元素,所以只要比较这两个队头元素哪一个最小哪一个就先将其合并入一个新数组,这样将两个数组中的元素全部合并到一个新数组,最后把新数组的值一一赋值到数组。的值,合并后不是排好序的,然后用一个排序算法(随便选择一个,这里用的是冒泡排序)将数组。类似的,这个从后往前的双指针的算法获取的应该是两个看作是队列的数组的队尾中最大的那个值。题目要求将两个有序数组合并并保证合并后的数组仍然有序。原创 2024-01-26 22:15:28 · 688 阅读 · 0 评论