- 博客(66)
- 资源 (6)
- 收藏
- 关注
原创 计算机网络(考研、期末)复习指导(MAC子层、网络层、传输层、应用层等)
计算机网络(考研、期末)复习指导(MAC子层、网络层、传输层、应用层等)
2022-06-09 11:39:52 3674 1
原创 Vivado的安装和Verilog的使用
一、实验目的熟悉并掌握VerilogHDL和Vivado的使用二、实验环境Vivado2021.2三、实验目标学习使用 Verilog 完成4选1多路选择器的设计和实现,并使用 Vivado工具对设计进行仿真和分析验证。四、实验原理多路选择器(MUX)是一种在多路数据传送过程中,能够根据需要将其中任意一路选 出来的电路,其原理图和真值表如下图所示。五、实验内容5.1 vivado的下载和安装为了完成4选1多路选择器,我们需要使用V...
2022-05-16 22:05:56 8475 3
原创 操作系统重点总结(部分)
第一章 计算机系统概述1、操作系统的定义(PPT):操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。2、操作系统的定义(王道):操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序的集合。3、操作系统的目标:方便性、有效性、开放性、可扩充性4、操作系统的作用:用户与计算机硬件资源的桥梁(接口)、用户与计算机系统资源的管理者、对计算机资源的抽象。操作系统作为计算机硬
2022-05-14 08:55:09 901 2
原创 数据库系统概论重点总结
第一章1、数据是描述事物的符号记录2、数据库是长期存在于计算机内,有组织可共享的大量数据的集合。具有较小冗余度、较高数据独立性和易扩展性3、数据库管理系统功能:数据操纵、数据定义、数据组织存储和管理、数据控制4、数据库系统包括:数据库DB,数据库管理系统DBMS,数据库管理员DBA和应用程序5、数据管理三个阶段:人工管理、文件管理、数据库管理系统6、数据库系统比文件系统的优势:实现了整体数据结构化(本质区别)、数据共享性高冗余度低、数据独立性高、数据由数据库管理系统统一管理和控制。
2022-05-10 13:25:43 5532 6
原创 从前序(后序)与中序遍历序列中构造二叉树
一、题目内容二、题目描述这两道题目都属于比较经典的构造二叉树的方法,相信大家都可以顺利的在纸上构造完毕。大概步骤如下(以中序+后序为例):很明显使用递归可以最大程度简化代码量,它的步骤流程是:(1)如果数组大小为0,直接返回NULL(递归退出条件)(2)如果不为空,那么当前节点的值取后序数组的最后一个,记为value。(3)找到后序数组最后一个值在中序数组的位置,记为mid_index。(4)根据mid_index切割中序数组,mid_inde...
2022-04-28 09:52:25 267
原创 二叉树的遍历及应用(详细代码)
一、前言很久没有写博客了,主要是因为懒。但是有些东西确实是比较好,值得分享。二、二叉树的遍历(基础版)如果学过数据结构的话,应该都了解二叉树的遍历,所以这里对于遍历是什么就不做赘述了。本文的目的是对遍历的算法代码进行回顾和优化。1、前序遍历如果我们将一棵二叉树的局部提取出来,所谓前序遍历就是按照“中左右的方式遍历”。有些朋友可能会搞混他们的关系,可以这样理解:什么序遍历就是“中”放的位置。怎么理解呢?如下*前序遍历:中-->左-->右...
2022-04-18 11:36:37 2369 1
原创 MYSQL基本知识02
一、子查询1、where的子查询 举个简单的例子,例如现在需要查找比最低薪资高的薪资。那么我们第一步是找到最低薪资: select min(salary) from sal; 我们将上面的语句记为Fun 然后再找出比最低薪资高的薪资 select salary from sal where Fun 在这里我们只需要把Fun语句的部分粘贴过来即可这就是where的子查询2、fro...
2022-02-27 13:44:15 328
原创 MYSQL基本知识 01
一、数据库的登录与基本使用1、当你想要登录你的MYSQL数据库时,你可以在cmd中输入以下语句登录MYSQL mysql -u用户名 -p密码一般来说,我们都有的用户名是root,密码是123456,(当然你也可以进行修改或者添加数据库)结果如下:显示上面的窗口也就说明我们登录进了MYSQL数据库,但是它给了提示,直接输入密码可能不安全,那我们可以在-p之后直接回车,然后再输入密码,这样输入的密码都会显示“ * ”,从而保护你滴小隐私。(注意,上面的语句不分大...
2022-02-15 21:02:20 513
原创 力扣第1219题:黄金矿工(回溯)
一、题目分析二、题目分析这道题是很常规的回溯题,主要思路大概就是在主函数中,只要不为0的部分就都尝试一遍。在处理函数中,首先如果当前所在点周围没有可以访问的点了,就直接返回当前的黄金值,否则就依次遍历上下左右,找出最大的,这里有关回溯的点是:因为吗,每个点只能访问一次,所以在访问上下左右的时候,要先将当前点置0(节省isvisit空间),遍历之后在取消置零即可。这道题需要注意的点就是在写边界条件时看仔细,否则当你需要的...
2022-02-05 10:41:53 669
原创 力扣第567题: 字符串的排列(滑动窗口)
一、题目内容二、题目分析+代码class Solution { public boolean checkInclusion(String s1, String s2) { // 边界条件,判断返回 if(s1.length()>s2.length()) return false; // 因为都是小写字母,所以只需要开一个26的数组记录每个字符出现的次数即可 int[]c...
2022-02-03 10:29:39 696
原创 暴力递归经典问题
一、前言暴力递归延伸出了很多常见的算法:动态规划、贪心、回溯等。本篇文章将从它们的基本思想——递归入手,解决一些经典问题。二、题目1、汉诺塔问题相信大家都玩过汉诺塔,简介如下:初始给定三根柱子和一个从上到下依次增大的圆盘堆,初始时圆盘堆放在第一个柱子上,请你给出这些圆盘通过中间柱子为中介,最终达到最后一个柱子所需要的最优路径。(条件是一次只可以移动一个圆盘,并且小圆盘必须放在大圆盘上面。)分析:这类的题目路径极为...
2022-01-29 13:47:33 1055
原创 力扣第1765题:地图中的最高点(多源BFS)
一、题目内容二、题目分析 这道题目很明显的一点在于,它告诉水域的高度,并且暗示我们其余点的高度要根据水域来求。也就是说,我不可以按行优先的方式进行遍历,然后求最小值,而是要通过BFS的方式,以水域为圆心,一层层的扩散开,直到全部遍历所有点。 这道题还有个不同的点在于,水域可能有多个,这说明在使用BFS的时候,我们一开始需要将所有水域都放在队列中。 我们还需要考虑的一点是,在以不同水域为圆心扩散的时候,难免要出现扩散区域重...
2022-01-29 12:07:06 1080
原创 2021年全国大学生计算机能力挑战赛(Java)决赛试题代码(外加部分试题)
一、前言前几天参加的比赛,今天在写题目的时候感觉和打比赛时有一题很类似,于是就凭借记忆稍微写一点东西。后面如果题目公布的话,我会补充上题目。二、题目解答 第一题内容记不得了,只有代码:public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n = sc.nextInt(); double avg=0; ...
2021-12-30 21:02:39 3293 3
原创 六大排序算法精讲(SelectSort、BubbleSort、InsertSort、MergeSort、QuickSort、HeapSort)
一、前言 最近在看算法公开课,听了很多老师讲了不少很有用的东西,但是只听不练很快就忘了,所以我还是选择以博客的方式巩固自己的学习。二、排序算法概述 今天主要讲的是比较经典的六大排序算法:选择排序、冒泡排序、插入排序、归并排序、快速排序和堆排序,除此之外还有一个比较重点的基数排序,但是因为它是不基于比较的排序,所以用法不是很广泛,所以我也只讲解它的实现原理,不多做阐述,并且,在讲解之余,我也会穿插一些其他内容。三、选择排序 选择排序是最基础的一...
2021-12-25 15:10:42 2146 2
原创 作业——机器学习教你预测商品销售额
(一)作业要求advertising.csv文件是某商品的广告推广费用(单位为元)和销售额数据(单位为千元),其中每行代表每一周的广告推广费用(包含微信、微博和其他类型三种广告费用)和销售额。若在未来的某两周,将各种广告投放金额按如下分配,请预测对应的商品销售额:(1)微信:100,微博:100,其他类型:100(2)微信:200,微博:100,其他类型:50另外,请提交对应的代码。若有对应的说明文档,也请提交。(二)作业内容对于这个实验,是机器学习中最常见的一类回归问题,通过已有的
2021-12-24 20:44:35 9388
原创 剑指Offer 56-数组中数字出现的次数(附异或运算详解)
一、题目内容二、题目分析 这道题目直接做的话还是很容易做的,最简单的方法就是将数组排序后一个个的数,但是这样的时间复杂度就会相对较高,于是我们优先考虑异或运算。 首先,我们聊聊什么是异或运算。 异或运算的符号是^,表示的含义是两个二进制数,相同为0,不相同为1 例如 1^1=0 1^0=1 0^0=0 异或运算满足交换律和结合律,啥意思...
2021-12-20 20:02:11 493
原创 力扣第994题:腐烂的橘子(BFS)
一、题目内容二、题目分析 这道题目是为了查找所有橘子均腐烂时候经过的最小时间,最佳方法是使用BFS,可以将每分钟看做遍历一层,直到遍历完为止。 首先我们要遍历一遍grid数组,找出新鲜橘子的数量count,当后续每次新鲜橘子被腐烂的时候,就让它减一,需要保证count大于0,在遍历grid的时候,还需要将最开始就是腐烂的橘子的坐标放进一个队列中去,以便后续调用。 之后我们在while循环中进行判断,取出队列中的队头,然后获取它...
2021-12-13 11:34:32 548
原创 力扣第797题:所有可能的路径(回溯、DFS)
一、题目内容二、代码class Solution { List<List<Integer>>list=new ArrayList<>(); List<Integer>templist=new ArrayList<>(); public List<List<Integer>> allPathsSourceTarget(int[][] graph...
2021-12-12 11:47:10 128
原创 力扣第1091题:二进制矩阵中的最短路径(BFS)
一、题目内容二、题目分析 在二维矩阵运算中,什么时候使用BFS,什么时候使用DFS呢?当我们需要查找一个结果是否存在的时候,可以使用DFS,因为它是先执行一种情况直到输出结果,如果不符合再继续寻找其他的,这样的话,当找到一个结果的时候就可以直接返回了。但是当我们的需求是找到最长或者最短的结果,那么最优的解法还是使用BFS,因为正如我上面说的,如果要用DFS,它会将每种情况都执行到出结果,那么为了找到符合条件的最短或最长结果,需求遍历所有结果,然后输出需要的那个。而...
2021-12-11 12:20:12 428
原创 力扣第117题:填充每个节点的下一个右侧节点指针(BFS)
一、题目内容二、题目分析 此题我们采用广度优先遍历算法进行解题,我们发现,每个节点的next总是指向同层的右边的那个节点(最后一个节点指向null)。那么我们是不是可以将节点按层一层层的放入队列,然后让他们的next依次等于下一个节点即可呢? 根据BFS基本套路,首先我们要while循环,里面的条件是队列不可以为空,如果就这样不加限制的话,最终的结果是每个节点都指向它先序遍历的下个节点,那是因为当前这层的最后一个节点会指向下一层的第一个节点。所以我...
2021-12-10 15:03:49 403
原创 力扣第200题:岛屿数量(广度优先搜索)
一、题目内容二、题目分析 那些“1”组成的陆地构成了一块块的岛屿,我们要找岛屿的数量,只需要通过深度遍历找到每一块岛屿的数量即可。老套路了。 代码:int cnt=0; public int numIslands(char[][] grid) { int m=grid.length; int n=grid[0].length; boolean[][]isvisited=new ...
2021-12-09 10:51:10 686
原创 力扣第438题:找到字符串所有字母的异位词(滑动窗口)
一、题目内容二、题目分析 第一步:明确本题可以使用滑动窗口解决。 第二步:定义一个list储存数据,初始为空。 第三步:判断s和p的长度,当p长度大于s时,直接返回空的list。 第四步:因为只可以是小写字母,所以定义两个长度为26的数组储存各字母出现的次数。 第五步:假设s的长度为slen,p的长度为plen。那么判断s的前plen个和p字母出现的次数是否相等,若相等就把0加入list,否则进行下一...
2021-12-08 15:23:06 404
原创 力扣第986题:区间列表的交集(双指针)
一、题目内容二、题目分析 虽然这道题目的标签是双指针解法,但是我拿到的第一想法是这样的: 先创造两个大大的boolean数组,如上图示例,第一个数组a的长度为数组最后一个数字加一,也就是26,;第二个数组长度为27。然后呢,将[0,2]、[5,10]之类的,只要在范围内的都赋值为true。然后就得到了两个赋值完毕的boolean数组,那么只要两个数组都为true,是不是就是重合的部分了?再然后把重合部分的两端加入list中,最后输出即可。 ...
2021-12-07 19:46:39 190
原创 力扣第844题:比较含退格的字符串(双指针)
一、题目内容二、题目分析 这道题目除了双指针其实还可以用栈写。首先定义两个空栈,然后分别进行如下操作: 从头开始,如果当前字符是#,就对栈进行出栈操作,当然出栈前要先判断栈是否为空。如果当前字符不为#,就将其放入栈中,最后得到两个装满比较后字符的栈,然后比较两个栈中内容是否相同,相同则返回true,否则返回false。 如果使用这种写法的话,使用C++会比较方便,因为c++封装好了一个stack,而java中虽然Stack是ve...
2021-12-06 15:13:59 1861
原创 力扣第82题:删除排序链表中的重复元素(双指针、链表)
一、题目内容二、题目分析 这道题,刚开始拿到的时候肯定知道要用双指针,但是有一点要注意的是,如果我们都令初始的双指针指向head,即ListNode node1 = head;ListNode node2 = head; 那么就会发现一个问题,如果像示例2那样,需要把前三个节点都删除,那可咋搞?所以正确的做法是定义一个表头节点p,该节点的next指向head,这样一来就算要删除前三个,只需要让p的next指向第四个节点即可。 ...
2021-12-05 20:11:12 485
原创 力扣第162题:寻找峰值(二分查找)
一、题目内容二、题目分析 这道题目其实起码有三种做法,第一种就是最简单的遍历,挨个和左右对比,直到找到峰值元素返回下标即可。但是这种方法运气好的话时间复杂度不过O(1),运气差的话,确是O(N),不过确实是一种容易想到的方法。 public int findPeakElement(int[] nums) { if(nums.length==1) return 0; if...
2021-12-04 13:36:58 937
原创 力扣第33题:搜索旋转排序数组(二分查找)
一、题目内容二、题目分析 其实一般我们在使用二分查找的时候,都要求待查找数组时有序的。但是这道题确是局部有序的,就是将一个原本有序的数组,从某个下标开始颠倒了个位置,这样就会形成两个局部有序的数组,对于这样的数组,要想查找其中是否含有target,其实也可以通过别样的二分查找。 具体思路是这样的,当我通过left和right找到一个数组的nums[mid]之后,我们可以断定,要么left到mid是有序的,要么mid+1到right是有序的...
2021-12-03 15:16:03 1247
原创 剑指 Offer 14.剪绳子(动态规划、数学分析)
一、题目内容二、题目分析 这道题目讲道理,我看到的第一眼就是动态规划,但是后来提交之后,发现还有大佬考虑用数学分析得出精简解法,在这里我也会一 一阐述。 对于动态规划而言,按照老套路,首先定义dp数组,含义明了,定义长度为n+1的dp数组,其中dp[i]代表长度为i的绳子的最大乘积。 其次,我们寻找初始条件,简单分析就可以得到,dp[2]=1,dp[1]=1(虽然题目告诉我们n>=2,但是设置dp[1]有利于接下来的计算...
2021-12-01 17:16:31 3202
原创 CCF 202009-2:风险人群筛查
一、题目内容二、题目分析 这题没什么难点,只要将输入的坐标储存在数组中,然后一个个查看,如果在矩形范围内,就让cnt加一,但是唯一一点就是,我们需要输出经过和逗留的人数,经过的人数很容易得出,只要有一个点在矩形内就可以判定经过风险区,而逗留却需要连续的k个及以上的点在矩形内,所以这题的难点就是如何判断连续的点,在这里我只需要当点在矩形内就加一,如果某一次出去了,就将刚才的数据保存并清零,最后将最大停留时间和k比较,如果大于k,说明此人逗留了,就让逗留人数加一即可。...
2021-11-28 13:11:04 403
原创 剑指Offer 26.树的子结构(二叉树、深度优先搜索)
一、题目内容二、题目分析 这个问题主要有两个方面难以理解:如果B是A树中的一部分,那么B的头结点必然是A中的某一个节点,而B恰好是A中的那个节点的子部分。 如上图示例2,B是A中以4为头结点的一部分,那么我们需要怎么做呢?很简单,挨个选取A中的节点并作为头结点,然后与B同时向下遍历,直到B遍历完,那么B就是A的一部分了。 具体判断B是否为以某个节点开始的子部分的代码是: boolean ispart(TreeNode A...
2021-11-27 15:22:31 224
原创 剑指Offer 13.机器人的运动范围(搜索、DFS、BFS)
一、题目内容二、题目分析 本题可以有深度搜索和广度搜索两种方式,对于深度搜索来说,我们首先需要判断当前所在点是否在矩阵范围内,其次需要判断该点是否访问过,如果访问过就直接返回,否则就继续进行。我们接着获取坐标的数位和与k进行比较,如果大于k,还是返回,如果小于等于k的话就让符合条件的数加一。 接着对该点上下左右继续进行遍历,然后输出计数值count。 代码:class Solutio...
2021-11-26 21:33:06 562
原创 剑指Offer.12 矩阵中的路径(深度搜索、回溯)
一、题目内容二、题目分析 本题可以使用回溯算法来做,我们需要遍历给定的board,找到所有和word第一个字母开始的位置,如上图,我们需要遍历board,然后找到所有的A。然后从这些开始进行深度搜索,如果可以找到匹配的字符串,就返回true,否则返回false。当一种路径不行的时候,就要通过回溯回到上一步,再进行深度搜索。 对此,在主函数中,我们可以这样写 for(int i=0;i<board.leng...
2021-11-25 15:46:11 487
原创 *力扣第76题:最小覆盖子串(滑动窗口、哈希表)
一、题目内容二、代码 public String minWindow(String s, String t) { HashMap<Character,Integer> hs=new HashMap<Character,Integer>(); HashMap<Character,Integer>ht =new HashMap<Character,Integer>(); ...
2021-11-07 13:31:53 189
原创 力扣第63题:不同路径2(动态规划回顾)
一、题目内容二、题目分析 这道题目和我之前写过的一道迷路的机器人很像,不同点在于那题需要输出路径但是无障碍物,这题只需要找出路径个数,但是存在障碍物。既然是动态规划那么还是通过设置dp开始,dp的大小就是网格的长宽。 动态规划的第一步就是确定dp的含义与大小,dp[i][j]的含义就是机器人从(0,0)出发,到达i,j所存在的路径数,那我们最终返回的就是dp[m-1][n-1]了。int m=obstacleGrid.length;in...
2021-11-05 20:31:33 310
原创 力扣第997题:找到小镇法官
一、题目内容二、题目分析 这题先定义一个存储被信任人数的数组,如果从1到n之间,有人信任他,那么他被信任的人数加一,如果他信任别人,就把他的值赋值为很小,因为法官不可能信任别人。三、代码class Solution { public int findJudge(int n, int[][] trust) { int []trustnum=new int [n+1]; for(int []i:...
2021-11-02 09:54:39 185
原创 力扣第136、137:只出现一次的数字(位运算)
一、位运算简介 位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。它主要有& 按位与、| 按位或、^ 按位异或、~取反、>>右移、<<左移 这六种运算符组成。他们的基本操作如下:1、&按位与运算规则:1&1=1,1&0=0,0&1=0,0&0=0。只有两数都为真时,结果才为真。 int a=4 ...
2021-10-28 10:23:51 191
合肥工业大学软件学院数据库课程设计
2023-10-15
合肥工业大学软件工程实训-基于vue+springboot+mysql的智能化企业财务报销系统
2023-10-15
计算机保研面试资料!经验贴
2023-10-09
计算机/软件专业保研资料合集
2023-10-09
合肥工业大学计算机图形学期末复习笔记
2023-02-25
预测商品销售额的数据集
2022-11-27
合肥工业大学计算机组成原理期末超详细复习
2022-06-17
Calculator.rar
2021-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人