
好题分享
文章平均质量分 95
本专栏设计在学习数据结构与算法中所遇到的题目
无双@
Get ur shit together man
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法分析 —— 《栈》
这就是题目的基本意思,但是会有一种情况,题目会给你这样的例子:2[ab2[2[cc]]最后转换就是abccccccccabcccccccc,所以他是会出嵌套的情况,而针对数字,也会有两位数以上的数字,那这里我们还要进行处理。题目描述我们也好理解,如果有尝试考研的同学肯定有做过这道题,简单来说,拿示例1来看,我们有一个栈,我可以先push1 2 3 4,然后把4给推出去,这样栈剩下就只有1 2 3,接下来想要推5出去,但我没有,所以我就加到5,加到了然后推出去。你可以认为输入字符串总是有效的;原创 2025-03-02 22:10:19 · 928 阅读 · 0 评论 -
算法分析 —— 《字符串》
二进制相加是我们在学习编程前期就必须掌握的技能,然而随着我们的技术不断进步,我们也需要着手通过代码解决二进制的相加问题,这道题还是很重要的,因为通过这道题我们可以对高精度的加减乘除法均有了解,而高精度运算算是一个算法入门技能,为什么是高精度呢,因为一定存在某些特别大的数之间进行运算,这里的大指的就是超过int类型甚至是long long类型的存储大小范围。先解释一下什么是回文串,回文串就是一个字符串,正着读和反着读都是一样的,所以对于像这种回文串是一某个字符串的子串的情况题型下,我可以采取。原创 2025-02-28 16:40:22 · 1074 阅读 · 0 评论 -
算法分析 —— 《哈希表》
题目也很好理解,解决方法就是将当前的值和下标绑在一起丢到哈希表里,当你遍历得到的值在哈希表中存在的话,那就拿自己的下标和哈希表里所映射的下标相减,如果小于等于3,就反回true,否则就加到哈希表里,增加新的映射关系。因为我们最后是要返回原字符串的,所以你排序完之后又得将原数据string存放集中在一起,那么用哈希表就能完成映射关系,<排序后的字符串,原数据string的数组>,通过这种模板的哈希表就能建立正确的映射.,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。原创 2025-02-26 14:15:19 · 606 阅读 · 0 评论 -
算法分析 —— 《链表》
既然是从小到大进行排序,那么我们需要从各个头节点的指针中,选取一个值小的节点,然后选取完之后,向后移动,但是问题就出现在vector里会有很多个链表,如果每个链表都创建一个指针来接收,那这个就是很困难的。题目来看,也不难理解,就是分别进行逆序呗,他给了k为2,那我就先逆序前2个节点,然后再跳转到后面,不断的两两进行逆序,直到剩下的节点不满足两两配对即可。题目描述很简单,就是实现两两交换即可,比如1、2、3、4,就直接搞成2、1、4、3,然后1、2、3、4、5,就可以变成2、1、4、3、5。原创 2025-02-24 10:21:52 · 1085 阅读 · 0 评论 -
算法分析—— 《归并排序》
那在这里我们在实现「合并两个有序数组」之前,就可以先通过双指针进行一次判断,再去排序,因为你无法控制是以2倍为标准然后向右移动还是统计数据,而且经过排序后,数据也会乱了,因此我们必须在排序之前就通过双指针做好统计。这道题目总体来说,与上一道题的算法思路一样,上一道题是记录有多少个前面大于后面的数字,而这道题是将每个坐标的数字统计起来,然后将确切的数据按照下标统计。所以归并排序是最简单的,利用递归的思路,我们就认为这个递归操作一定可以做到,那么最终就是实现一个「合并两个有序数组」的操作。原创 2025-02-18 18:28:13 · 596 阅读 · 0 评论 -
算法分析 ——《快速排序》
问题,而针对该问题,我们第一次是用堆排序的算法来解决的,可是题目要求我们设计一个$ O(n) $的时间复杂度,那么堆排序肯定就pass掉了,所以在这里我们尝试使用: “数组分三块”的快排思路来解决。因为要划分区域,所以我们还是定义两个指针left和right,然后先进行一次遍历,将数组划分成三块,具体的方法和《颜色分类》的方法一致,但是第一次遍历肯定还是乱序的,因为只是大概的进行排序。这一步很好理解,因为我们已经动手实现过很多次了,不过这里我们的最终目标是找到第k大的那个数字,如果上面的数组已经排好序了,原创 2025-02-17 23:29:28 · 869 阅读 · 0 评论 -
算法分析 ——《模拟》
因此我们只需要满足条件:1、当「问号」出现在第一个位置时,只需要看「问号」后的那个元素即可。2、当「问号」出现在最后个位置时,只需要看「问号」前的那个元素即可。原创 2025-02-13 19:54:20 · 660 阅读 · 0 评论 -
算法分析 —— 《位运算》
既然实现了无进位相加,那么我们得考虑进位叭,获取进位的位也很容易,直接将两个数按位与上即可,如果最终算出来的进位是不等于0的,那就代表存在进位,如果为0,就代表不存在进位了,这样直接返回原数据即可。那么我们就不能简单的讲他们异或在一起,如果你是两个数相同,那异或完之后肯定都会变为0,但是这是3个数字,那就不能简简单单的异或了,这就得尝试换一种思路了,我们先以题目中给的一个例子来进行举例。现在我们就彻底找出规律来了,那个唯一的数,把它们二进制的每一位都进行操作,如果结果是1的话,那就代表着这是唯一的数。原创 2025-01-22 16:00:50 · 811 阅读 · 0 评论 -
算法分析 —— 《位运算基础》
这次的算法分享,我想给大家带来位运算的专题练习,相信大家在学习C语言的时候一定有接触到位运算的操作,包括按位与(&),按位或(|),按位异或(^)。本章是作为开启真正的算法分享之前的补充文章,先铺垫好基础知识,这样在后面分享讲解的时候也能很快就反应过来是怎么一回事。下面就先来介绍8个基础知识,然后会有5道经典的OJ题目让我们来解决。有0则0有1则1相同为0,相异为1(无进位相加给一个数n,确定它的二进制表示中的第×位是0还是1:==提取n & -n==干掉位运算的优先级:多加括号。原创 2024-11-25 19:42:58 · 624 阅读 · 0 评论 -
算法分析 —— 《前缀和》
而我们要判断出现了多少次,本质就是拿sum[i] - K在哈希表里查找出现了多少次,上图就是一个简单的例子,很明显此时的K是出现了两次,因为当i到8这个位置时,前缀和就是13,而13 - 7 == 6,而6是会在哈希表里出现两次,一次是2 + 4还有一次是2 + 4 + 0.因此count就会位2,以此类推。那我们还是用暴力的方法来做,时间复杂度将会非常的高,因此这是低效的。而细节就在这里停下了,我们不需要进行更新,因为j一定是小于i的,后续若是又发现一个值,我们就减去最左边的,算出的结果就肯定是大的!原创 2024-11-23 00:47:36 · 781 阅读 · 0 评论 -
算法分析——《二分查找》
《二分查找》《在排序数组中查找元素的第一个和最后一个位置》《x 的平方根》《搜索插入位置》《山脉数组的峰顶索引》《寻找峰值》《寻找旋转排序数组中的最小值》《点名》原创 2024-09-30 15:29:20 · 1311 阅读 · 0 评论 -
算法分享——《滑动窗口》
《长度最小的子数组》《无重复字符的最长子串》《最大连续1的个数 III》《将 x 减到 0 的最小操作数》《水果成篮》《找到字符串中所有字母异位词》《串联所有单词的子串》《最小覆盖子串》原创 2024-09-25 15:45:34 · 2624 阅读 · 0 评论 -
算法分享——《双指针》
《移动零》《复写零》《快乐数》《盛最多水的容器》《两数之和 II - 输入有序数组》《三数之和》《四数之和》原创 2024-09-08 16:56:18 · 1362 阅读 · 0 评论 -
好题分享(stack的运用)
《最小栈》《栈的弹出压入序列》《逆波兰表达式求值》原创 2024-05-05 16:58:52 · 391 阅读 · 0 评论 -
《二叉树》——4(Leetcode题目练习)
《对称二叉树》《单值二叉树》《相同的树》《前序遍历》《另一颗子树》《翻转二叉树》《平衡二叉树》原创 2024-02-12 18:10:24 · 713 阅读 · 0 评论 -
好题分享(2023.11.19——2023.11.25)
《设计循环队列》的实现原创 2023-11-27 17:41:56 · 1062 阅读 · 0 评论 -
好题分享(2023.11.12——2023.11.18)
本次《好题分享》当中,我们主要熟悉我们刚刚所学的《栈和队列》这一部分内容。通过三道Leecode题目使我们对于《栈和队列》能有一个更好的认识。以下是我们需要解决的三道题目:《有效括号》《用队列实现栈》《用栈实现队列》这三道题的代码量都会非常的长,那是由于我们现在处于初学阶段,没有办法使用一些高效的方法来解决这些题目,但是不用怕,因为我们不仅仅实现过《栈》也实现过《队列》。对于《栈和队列》的讲解可以去访问我的上一篇blog《栈和队列》的模拟实现(顺序栈) (链队列)-CSDN博客。原创 2023-11-22 16:07:05 · 167 阅读 · 1 评论 -
好题分享(2023.11.5——2023.11.11)
《反转链表》《相交链表》《环形链表(一)》《环形链表(二)》《随机链表的复制》《合并两个有序链表》《移除链表元素》《链表中倒数第K个节点》《链表分割》《链表的回文结构》原创 2023-11-13 17:08:40 · 289 阅读 · 3 评论 -
好题分享(2023.10.29——2023.11.04)
Leecode《合并两个有序数组》《移除链表元素》《链表的中间节点》原创 2023-11-05 22:52:22 · 279 阅读 · 4 评论 -
好题分享(2023.10.22——2023.10.28)
Leecode《消失的数字》《轮转数组》《移除元素》《删除有序数组中的重复项》,还有一道关于时间复杂度的提醒讲解原创 2023-10-29 12:42:19 · 339 阅读 · 7 评论