![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 69
阿翔要努力变强
记录和分享自己的学习成长过程,目前主要学习用Qt开发应用软件以及一些图像处理的工作,偶有关于深度学习的记录和分享
展开
-
LeetCode刷题篇—206.反转链表
LeetCode刷题篇—206.反转链表题目思路求解方法题目反转一个单链表。思路最近因为很多链表里的问题都涉及到了递归的方法,所以又重新深入思考了一些递归的问题,今天这道题分享迭代和递归两种思路。在链表类型的题目当中,经常用到的一个小技巧就是创建一个dummy节点,和一个记录head节点的cur节点。一、迭代法(1)原本的顺序是1->2->3,初始dummy节点为NULL,即(dummy,1->2->3)*cur = head记录头节点,指向1。当cur节点不为N原创 2021-03-27 22:24:04 · 172 阅读 · 0 评论 -
LeetCode刷题篇—27.移除元素
LeetCode刷题篇—27.移除元素题目思路求解方法题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路一、一次遍历法题目要求输出的是更新后的数组长度,而且可以修改输入数组,那么可以考虑将所有数值等于val的元素全部移到数组尾端,然后输出前部分的长度。(1)定义新的变量n等于数组原创 2021-03-21 17:13:58 · 127 阅读 · 0 评论 -
LeetCode刷题篇—20.有效的括号
LeetCode刷题篇—20.有效的括号题目思路求解方法题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路这是一道典型的用到栈这种数据结构的题目,当然除了只用栈之外还可以选择栈和哈希表结合的求解,下面将逐一介绍:一、单纯使用栈(几种思路细节略有不同)整体思路是将字符串中先遇到的括号入栈,当后面的括号与栈顶的括号匹配的时候,出栈,如果最后栈为空,说明全部原创 2021-03-21 16:39:09 · 158 阅读 · 0 评论 -
LeetCode刷题篇—496.下一个更大的元素(一)
LeetCode刷题篇—496.下一个更大的元素(一)题目思路求解方法题目给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。思路1、辅助栈根据之前一题所讲的辅助栈的思想,通常是除了所有元素所在栈之外,另开辟新的栈存储一些变量。对于本原创 2021-03-08 22:10:25 · 121 阅读 · 0 评论 -
LeetCode刷题篇—155.最小栈
LeetCode刷题篇—155.最小栈题目思路求解方法题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。思路此题意为随时找到栈中的最小元素,栈是一种先入后出的数据结构,只能访问到栈的栈顶元素,所以无法像数组或链表一样随意遍历访问到最小元素。所以此时在这到题中采用辅助栈的方法,用另外的一个栈存储记录每原创 2021-03-08 21:13:06 · 159 阅读 · 0 评论 -
数据结构基础——链表(学习篇)
数据结构基础——链表创建链表插入原理代码实现本次总结学习的内容是链表的构造,插入,遍历,删除,反转这些操作,首先学习的是链表的构造、插入、遍历、下面是实现它们的具体函数:创建链表首先是创建一个链表,在创建链表前线创建链表的元素,也就是链表的结点data记录结点的数据,next指针用来指向下一结点;_data作为一个常量初始化data。接下来就是定义链表类定义头指针,并在构造函数里初始化让他指向空,然后是析构函数,在析构函数里我们要删除整个链表,思路就是循环遍历每个结点,然后依次删除。cur原创 2020-11-11 17:39:54 · 290 阅读 · 0 评论