![](https://img-blog.csdnimg.cn/direct/cd5be34cbb6843c5b295245358bbd755.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 65
本专栏主要为小编学习数据结构的一些笔记,和刷力扣算法题目思路。
坚持不懈的大白
liuze,研一学生,熟悉C、Python、Java、HTML等编程语言,自学过Spring Boot、Python爬虫、Vue.js、React、MySQL、MongoDB...
展开
-
LeetCode:1402. 做菜顺序、2316. 统计无向图中无法互相到达点对数
从0号节点依次遍历到n-1号节点,如果遍历到某节点时,在map中已经存在了,那么不需要再进行接下来的操作,否则,在map中记录当前节点,然后依次遍历与该节点连通的节点,继续上述操作,直到遍历完某节点所有连通的节点,此时map中存储的节点个数减去pre(初始为0),即可得到一组不为0数,用一个数组arr存储,直到所有节点全部遍历完,然后计算arr中的数即可得到最终结果。输入:n = 7, edges = [[0,2],[0,5],[2,4],[1,6],[5,4]]每道菜都需要花费 1 单位时间完成。原创 2023-10-23 12:09:31 · 2265 阅读 · 1 评论 -
Leetcode刷题:395. 至少有 K 个重复字符的最长子串、823. 带因子的二叉树
首先arr中每个元素单独组成二叉树是满足题目要求,现在考虑多个元素组合情况,根节点和其左右节点值满足条件:root.val = root.left.val*root.right.val,其左、右节点如果还有子节点,那么也应该满足上述等式,为此,需要对原arr进行升序排序,然后依次遍历arr中每个元素,用map来记录arr中每一个元素满足上述等式次数。解释: 可以得到这些二叉树: [2], [4], [5], [10], [4, 2, 2], [10, 2, 5], [10, 5, 2].原创 2023-08-29 07:38:30 · 664 阅读 · 1 评论 -
leetcode刷题:1657. 确定两个字符串是否接近、1004. 最大连续1的个数 III
上述两个题目位于[leetcode75](https://leetcode.cn/studyplan/leetcode-75/)中,难度为中等,虽然对于大佬而言,可能很简单,但是对于我而言,可能说还是有一些挑战性的。最后提交效率不怎么高,希望各位谅解。原创 2023-08-05 07:02:53 · 207 阅读 · 0 评论 -
leetcode 面试题 02.04. 分割链表
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有。指针后面(并修改p指针的指向);否则,这里分为两种情况,初始化指针。输入:head = [1,4,3,2,5,2], x = 3。思路:没有在原链表上进行修改,而是新建一个链表。指向当前新连入的节点;否则把当前节点连接在。最后这个遍历完成之后,返回。为NULL,那么直接把当前节点连接在。每个分区中各节点的初始相对位置。输出:[1,2,2,4,3,5],如果head中某个节点值。,那么将这个节点连接在。原创 2023-04-29 16:45:29 · 865 阅读 · 0 评论 -
leetcode 1721. 交换链表中的节点
可以考虑使用两次遍历,第一次遍历找到第一个交换节点,同时也统计出链表的节点个数,第二次遍历利用链表的节点个数得到第二个交换节点,最后交换两个节点的值即可。具体思路为:初始化first指针为NULL,last指针指向head链表,遍历原链表的节点,只要当前节点数小于或者等于k,first=当前的节点;链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表。输入:head = [1,2,3,4,5], k = 2。输出:[1,4,3,2,5]原创 2023-04-28 16:38:13 · 73 阅读 · 0 评论 -
leetcode-328 奇偶链表
题目如下:给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。原创 2023-04-27 09:18:14 · 505 阅读 · 0 评论 -
leetcode:61. 旋转链表
因为链表中节点的个数是0~ 500,而k的取值范围为0~2*10^9,所以需要用k对节点个数进行取余操作,用于去除其中的重复操作。另外,需要获取到链表中两个特殊位置的指针,其中一个指向链表的尾部(q指针);另外一个指针指向链表中第length-k的位置(length为链表的长度,从头指针开始算起),如上述题目示例,length=5,k=2,length-k=3,也就是链表的第3位置,对应节点值为3的节点(pre指针)。输入:head = [1,2,3,4,5], k = 2。输出:[4,5,1,2,3]原创 2023-04-26 09:05:38 · 199 阅读 · 0 评论 -
leetcode-12:1664. 生成平衡数组的方案数
思路:虽然这题给出的题目标签为动态规划,但是小编一看到这个题目就想到运用数学知识解决这个问题。如果一开始我们先将题目给出的数组的偶数下标元素的和与奇数下标元素的和之差计算出来(小编代码中用。给你一个整数数组 nums。你需要选择 恰好 一个下标(下标从 0 开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。如果一个数组满足奇数下标元素的和与偶数下标元素的和相等,该数组就是一个 平衡数组。请你返回删除操作后,剩下的数组 nums 是 平衡数组 的 方案数。描述可能不是很清楚哈!原创 2023-01-28 12:12:48 · 194 阅读 · 0 评论 -
leetcode-11:1814. 统计一个数组中好对子的数目
leetcode上 1814. 统计一个数组中好对子的数目原创 2023-01-18 17:14:22 · 490 阅读 · 1 评论 -
数据结构(C语言版)严蔚敏--->一些操作相关数据结构的题目
仅仅为小编学习数据结构做的一些题目原创 2022-11-08 21:09:07 · 710 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏--->操作链表的一些算法(持续更新中。。。)
仅仅是学习数据结构时碰到的一些编写代码题目。原创 2022-10-23 15:52:46 · 528 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏--->常用的查找算法[静态查找表、动态查找表]
仅仅是有关查找的算法笔记。原创 2022-10-22 07:06:25 · 2202 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏---图的操作的相关代码
本篇博客提供操作图的参考代码,参考代码意味着在您的电脑上不一定能运行成功喔!原创 2022-10-17 17:09:59 · 515 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏---二叉树遍历、操作二叉树的相关代码
本篇文章主要提供二叉树的遍历、操作二叉树的相关代码,仅供参考!原创 2022-10-15 19:22:28 · 697 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏(树、二叉树的相关概念笔记)
主要为树、二叉树的相关概念的笔记原创 2022-10-02 20:28:53 · 709 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏(字符串的模式匹配算法--KMP算法)
主要介绍字符串匹配算法(KMP)原创 2022-09-29 20:48:44 · 1238 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏(线性表、队列、栈、串、树、图等数据结构参考代码,持续更新中。。。)
本篇文章主要提供相关数据结构实现的参考代码原创 2022-09-15 15:53:29 · 976 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏->二叉树(链式存储结构)的构造及其几种遍历方式(先序、中序、后序、层次)和线索二叉树
本文主要讲述二叉树的构造及其遍历和线索二叉树的相关内容。原创 2022-07-28 20:36:09 · 1804 阅读 · 0 评论 -
数据结构(C语言版)严蔚敏->排序
本文主要讲述常用的排序算法原创 2022-07-22 12:30:30 · 1850 阅读 · 2 评论 -
数据结构(C语言版)严蔚敏->串的定义(顺序存储、堆分配存储、块链存储)
串的定义(顺序存储、堆分配存储、块链存储)原创 2022-07-09 09:23:44 · 597 阅读 · 3 评论 -
数据结构(C语言版)严蔚敏->用栈求解表达式(中缀表达式、后缀表达式)
主要讲述用栈求解表达式(中缀表达式、后缀表达式)原创 2022-07-08 20:08:44 · 1432 阅读 · 4 评论 -
数据结构(C语言版)严蔚敏->队列的顺序存储(循环队列)和链式存储
主要讲述队列的顺序存储和链式存储,其中包括循环队列。原创 2022-07-07 17:36:50 · 1329 阅读 · 1 评论 -
数据结构(C语言版)严蔚敏->顺序栈的定义、利用顺序栈解决有效的括号
1. 利用栈解决有效的括号问题有效的括号题目来自leetcode,链接为:有效的括号,题目难度简单。思路,首先判断当前栈是否为空,如果为空,则将当前字符入栈;如果栈不为空,则得到栈顶字符元素,将得到的栈顶字符元素与当前字符进行有效括号比较,不过不满足有效括号,则将当前栈入栈,否则将当前栈顶字符元素出栈,以此类推即可,最后判断栈是否为空,为空则字符串有效,否则无效。...原创 2022-07-04 13:40:11 · 1006 阅读 · 1 评论 -
数据结构(C语言版)严蔚敏->单链表的定义及合并两个有序单链表
文章主要讲述用C语言实现单链表及合并两个有序单链表。原创 2022-07-01 15:26:02 · 1067 阅读 · 2 评论 -
数据结构(C语言版)严蔚敏->顺序表的定义及合并顺序表
文章主要讲述用C语言实现顺序表及顺序表的合并。原创 2022-06-30 16:01:39 · 1292 阅读 · 0 评论 -
LeetCode9:二倍数对数组
原题为:给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。示例 1:输入:arr = [3,1,3,6]输出:false示例 2:输入:arr = [2,1,2,6]输出:false示例 3:输入:arr = [4,-2,2,-4]输出:true解释:可以用 [-2,-4] 和 .原创 2022-04-01 10:53:49 · 392 阅读 · 0 评论 -
LeetCode-8:根据二叉树创建字符串
原题如下:你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4]1/ \2 3/4输出: “1(2(4))(3)”解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”。示例 2:输入: 二叉树: [1,2,3,null,4.原创 2022-03-19 22:21:25 · 194 阅读 · 0 评论 -
LeetCode-7:使数组变成交替数组的最少操作数
原题为:解题思路:小编觉得这样应该可以通过测试,用两个字典分别统计原列表下标偶索引和奇索引对应的值的个数,然后遍历这两个字典,分别找到两个字典中值最大的键(当然最后两个键的值不能相等),最后再遍历一次列表,分别对比,如果与列表中的值不相等,那么意味着操作数+1。参考代码:class Solution(object): def minimumOperations(self, nums): """ :type nums: List[int] .原创 2022-03-11 20:19:37 · 387 阅读 · 1 评论 -
数据结构 使用链表来对学生信息进行处理
数据结构 使用链表来对学生信息进行处理头文件 Student.h#ifndef STUDENT_H_INCLUDED#define STUDENT_H_INCLUDEDtypedef struct{ int id; char name[10]; int age;}Student;typedef struct LNode{ Student data; ...原创 2019-11-18 22:07:33 · 1148 阅读 · 0 评论 -
数据结构 使用栈来判断一个单词是否为回文词
1.使用顺序栈来判断一个单词是否为回文词代码如下sqstack.h //头文件#ifndef SQSTACK_H_INCLUDED#define SQSTACK_H_INCLUDED#define STACK_INIT_SIZE 100#define STACK_INCREMENT 50typedef int SElemType;typedef struct{ SE...原创 2019-11-10 15:22:53 · 2837 阅读 · 0 评论