三月的一天
计算机专业硕士毕业,多年的数学建模、复杂网络、软件开发、前后端技术开发的实践经验。作为一名博客作者,我致力于将我所学到的知识和经验分享给更多的人。我相信,知识的力量在于传播,而分享则是知识传播的最佳途径。我的博客内容涵盖了计算机专业基础知识、数学建模相关实践、复杂网络论文研究、LeetCode算法刷题经验、C语言开发经验、前端Vue、React框架开发实战相关知识。旨在为读者提供有价值的信息和实用的技巧。如果您对我的博客内容感兴趣,或者有任何问题想要交流,您可以通过评论或者私信与我联系!
展开
-
leetcode刷题(javaScript)——字符串相关场景题总结
素数:只能被1和它本身整除。原创 2024-02-25 20:08:22 · 508 阅读 · 0 评论 -
leetcode刷题(javaScript)——回溯、递归、dfs相关场景题总结
递归通常用于解决可以被分解为相同问题的子问题的情况,通过不断调用自身来解决问题。当涉及到回溯、递归、深度优先搜索(DFS)相关的场景题时,通常可以将它们放在一起综合考虑,因为它们之间有一定的联系和相互影响。以下是一些相关的LeetCode场景题以及解题技原创 2024-03-24 10:24:29 · 1063 阅读 · 0 评论 -
leetcode刷题(javaScript)——BFS广度优先遍历相关场景题总结
广度优先搜索(BFS)在JavaScript编程中有许多实际应用场景,特别是在解决图、树等数据结构相关问题时非常常见。在JavaScript中,可以使用队列来实现广度优先搜索算法。通过将起始节点加入队列,然后迭代地将节点的邻居节点加入队列,直到队列为空为止。这样可以逐层地遍历图或树结构,找到目标节点或满足条件的节点。在实际编程中,需要注意避免重复访问节点、处理环路等问题,确保算法的正确性和效率。上题:可以按照博主的列的题目顺序依次练习,二叉树的简单,图论的难,但是做题技巧比较固定。原创 2024-03-21 18:26:50 · 1047 阅读 · 0 评论 -
leetcode刷题(javaScript)——堆相关场景题总结
堆是什么?堆都能用树表示,并且一般树的实现都是利用链表。平时使用的最多的是二叉堆,它可以用完全二叉树表示,二叉堆易于存储,并且便于索引。在堆的实现时注意:因为是数组,所以父子节点的关系就不需要特殊的结构去维护了,索引之前通过计算就可以得到,省掉了很多麻烦,如果是链表结构,就会复杂很多。在JavaScript刷题中,堆(Heap)通常用于解决一些需要高效处理优先级的问题,例如找出最大或最小的K个元素、实现优先队列等。:通过维护一个大小为K的最大堆或最小堆,可以快速找出数组中最大或最小的K个元素。原创 2024-03-13 14:58:47 · 1082 阅读 · 0 评论 -
leetcode刷题(javaScript)——栈、单调栈相关场景题总结
栈的主要思想是“后进先出”(Last In First Out,LIFO),即最后进入栈的元素最先出栈。栈通常用于解决需要“回溯”或“撤销”操作的问题,以及需要维护“”的问题。给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。主要思路是遇到左括号推入栈遇到右括号,将栈顶左括号移除,并和它进行对比。不相等return false否则继续比较,直到最后,判断是否还有没匹配上的左括号。原创 2024-02-29 18:59:39 · 1169 阅读 · 0 评论 -
leetcode刷题(javaScript)——字典哈希表相关场景题总结
在 JavaScript 刷题中,字典(Dictionary)和哈希表(Hash Table)通常用来存储键值对,提供快速的查找、插入和删除操作。它们在很多算法题目中都有广泛的应用,特别是在需要快速查找元素或统计元素出现次数的情况下。原创 2024-03-04 17:59:37 · 1201 阅读 · 0 评论 -
leetcode刷题(javaScript)——链表相关场景题总结
1. 熟悉链表的基本操作:了解链表的基本结构和操作,包括节点的定义、指针操作等。:在处理链表时,要考虑边界情况,如空链表、只有一个节点的链表等。2. 反转链表:将链表的指针方向反转,使链表的尾部变为头部。1. 遍历链表:从头到尾遍历链表,处理每个节点的值或指针。3. 合并两个有序链表:将两个有序链表合并成一个有序链表。4. 删除链表中的指定节点:删除链表中特定值或位置的节点。5. 检测链表中是否有环:判断链表中是否存在环形结构。:递归是解决链表问题的常见方法,可以简化问题的复杂度。原创 2024-03-02 00:00:38 · 1280 阅读 · 0 评论 -
leetcode刷题(javaScript)——数组相关场景题总结
在LeetCode刷题时,针对数组和字符串相关的场景题,可以使用以下技巧和方法: 双指针法:使用快慢指针、左右指针或对撞指针解决问题,如查找两数之和、判断回文字符串等。滑动窗口:通过维护一个滑动窗口来解决问题,如最小覆盖子串、最长无重复字符的子串等。哈希表:使用哈希表记录元素出现的次数或位置,解决查找、去重等问题。排序:将数组排序后,利用有序性解决问题,如有序数组中查找两数之和、三数之和等。前缀和:利用前缀和数组来解决子数组和问题,如子数组和为K等。原创 2024-02-24 13:46:19 · 695 阅读 · 0 评论 -
数据结构课程设计——实现图的DFS和BFS算法(C语言代码实现)
一、实验目的及要求分别构造四种类型图的邻接矩阵存储结构和邻接表存储结构。输出构造的图。 分别实现图的DFS和BFS算法(存储结构任意)。 在给定的连通网络上求解最小生成树(Prim算法和Kruscal算法任选)。 在给定的有向带权图上实现求关键路径的算法。 在带权的有向图上求解从某一原点出发到其余顶点的最短路径。 以界面的形式展现出相关的选项。二、实验代码#include <stdio.h>#include <stdlib.h>#define INFIN原创 2021-02-03 18:12:59 · 2156 阅读 · 0 评论 -
数据结构课程设计——二叉树的建立与遍历操作 C语言实现
一、实验目的及要求目的: 用c语言实现操作要求: 构建一棵二叉链表结构的二叉树。 输出该二叉树的先序,中序和后序遍历序列(其中中序遍历要求用递归算法和非递归算法分别实现)。 统计该二叉树中叶子节点的个数。 求该二叉树的高度。 对上述构建的二叉树进行中序线索化并输出其上的中序遍历序列。 所有上述要求用界面形式展现二、实验代码#include<stdio.h>#include<malloc.h>#include<stdlib.h>#define原创 2021-02-03 17:53:50 · 2022 阅读 · 0 评论 -
操作系统——磁盘调度算法C语言代码实现
一、实验目的及要求通过模拟磁盘调度算法加深对磁盘调度的理解,熟悉磁盘管理系统的设计方法;加深对磁盘访问过程的理解。二、实验内容编程实现下述磁盘调度算法,并求出每种算法的平均寻道长度,并给出调度顺序;要求在主界面中灵活选择调度算法,要求实现以下磁盘调度算法:1.先来先服务FCFS 2.最短寻道时间优先SSTF 3.扫描算法SCAN 4.循环扫描算法CSCAN三、程序结构及流程图程序包含一个主函数以及四种调度算法对应...原创 2020-08-09 21:13:56 · 6738 阅读 · 0 评论 -
编译原理——词法分析程序的设计与C++代码实现
一、实验目的和要求设计、编制、调试一个具体的词法分析程序,加深对词法分析原理的理解。①实验描述通过对PL/0词法分析程序(GETSYM)的分析,并在此基础上按照附录A中给出的PL/0语言的语法描述,编写一个PL/0语言的词法分析程序。此程序应具有如下功能:输入为字符串(待进行词法分析的源程序),输出为单词串,即由(单词、类别)所组成的二元组序列。有一定检查错误的能力,例如发现2A这类不能作为单词的字符串。②算法思想算法的基本任务是从字符串表示的源程序中识别出具有独...原创 2020-08-09 21:02:32 · 2464 阅读 · 0 评论 -
数据结构实验——数组和压缩矩阵C/C++代码实现
一、实验要求用一维数组实现:设一系列非零整数存放在一个数组中,试设计算法,将所有正整数存放在数组的前半部分,将所有负整数放在数组的后半部分。使用稀疏矩阵的三元组表示:设计一个算法,计算一个稀疏矩阵的三对角元素之和。二、实验分析【实验概述】1.实验目的及要求目的: 用c语言实现操作要求: 1.用一维数组实现:设一系列非零整数存放在一个数组中,试设计算法,将所有正整数存放在数组的前半部分,将所有负整数放在数组的后半部分。2.使用稀疏矩阵的三元组表示:设计一个算法,计算一个稀疏矩原创 2021-02-03 17:40:16 · 555 阅读 · 0 评论 -
华为笔试题——数组、递归、动态规划、最长递增子序列
HJ3.明明的随机数明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。输入描述:输入多行,先输入随机整数的个数,再输入相应个数的整数输出描述:返回多行,处理后的结果思路原创 2020-09-14 19:55:25 · 1396 阅读 · 0 评论 -
华为笔试——字符串排序、去重、反转等算法(C语言版)
最近刷题记录太多,字符串又是华为笔试非常爱考的知识点,设计字符串的读入、存取、字符的判断、比较、去重、排序等操作。根据华为近几年笔试中出现的题目,依次剖析每道题目的思想和算法实现。注:题目的编号对应牛客网《华为机试》中的题目编号目录HJ1.计算字符串最后一个单词的长度,单词以空格隔开。HJ2.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。HJ4.计算字符个数:连续输入字符串,请按长度为8拆分每个字符串后输出到新的..原创 2020-09-13 11:38:42 · 2360 阅读 · 0 评论 -
C语言实现算法——表达式求值(中缀表达式转后缀表达式)
一、先将中缀表达式转为后缀表达式规则:遇到数字:直接输出 遇到左括号:直接入栈 遇到右括号:输出栈顶元素,直至遇到左括号或者栈空;右括号不入栈 遇到运算符:分两种情况:i)当前运算符优先级大于栈顶优先级,直接入栈;ii)当前运算符优先级小于栈顶,则先输出栈顶元素,直至栈空或遇到左括号,最后入栈。举例:有中缀表达式:A+B*(C-D)-E/F,怎么转后缀表达式呢步骤1:遇到A,输出A 栈:空步骤2:遇到+,入栈...原创 2020-09-09 20:59:47 · 3963 阅读 · 0 评论 -
牛客网华为笔试题刷题记录——C语言版(更新中)
由易到难的顺序更新,刷题的时候感觉C语言可能白学了,重新出发。欢迎一起的小伙伴学习。加油加油。提示:在牛客网刷题需要遵守牛客网上的输入输出语法,用户提供输入接口,牛客网从该接口中输入测试数据进行测试。详见博客:牛客网循环输入输出测试——C语言scanf和printf用法 和牛客网字符/字符串循环输入输出测试——C语言scanf和printf用法HJ7.取近似值:写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。..原创 2020-08-18 21:42:31 · 2551 阅读 · 0 评论 -
华为机试真题2017
汽水瓶问题题目描述:有这样一道智力题:“某商店规定:三个空气水瓶可以换一瓶汽水。小张手上有是个空汽水瓶,他最多可以换多少平汽水喝?”答案是5瓶,方法如下:先用9个空汽水瓶换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借你一瓶汽水,喝掉这瓶满的,喝完后用3个空瓶子饭一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水...原创 2020-04-21 11:35:23 · 533 阅读 · 0 评论 -
Java学习笔记——二叉树的遍历(前序、中序、后序遍历详解)
一、前序、中序、后序遍历方法前序遍历:先输出父节点,在遍历左子树和右子树 (根左右)中序遍历:先遍历左子树,在输出父节点,在遍历右子树 (左根右)后序遍历:先遍历左子树,在遍历右子树,最后输出父节点 (左右根)(1)二叉树前序遍历算法思路:准备:构建二叉树,传入某节点作为当前节点1.先输出当前节点 //前序遍历每次先输出当前节点,在判断是否有左子树或右子树...原创 2020-04-14 01:40:02 · 475 阅读 · 0 评论