自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 JavaScript基础语法

JS中所有的对象都是Object类型,无论这个对象叫啥名字,有啥属性,都是相同类型。对象:浏览器把页面中的每个标签/元素都抽象成了一个对象,使用JS就可以直接拿到这些对象,也就可以基于JS来操作页面内容了。在使用某个变量的时候,就会先在当前{ }去找,如果找不到,就往外层{ }去找,一直找到最顶层还找不到,就认为变量未定义。创建了变量add,对add初始化,用一个函数对它初始化,add这个变量的类型,就是函数类型——function。undefined的值是undefined,类型也是undefined。

2022-09-20 20:33:14 1104 7

原创 这儿有一份HTML 基本使用手册,请注意查收

HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。. 使用HTML,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。这取决于浏览器的实现,属于浏览器自带的默认样式,实际开发中一般会指定大小(CSS就是干这个的)border 表示边框. 1 表示有边框(数字越大, 边框越粗), “” 表示没边框.

2022-09-10 20:54:34 1537 3

原创 超详细的MySQL基本操作

MySQL一些最基本操作,很详细~~

2022-07-16 19:58:58 1663 6

原创 【八大排序③】快速排序(动图演绎Hoare法、挖坑法、前后指针法)

快速排序(Quick Sort)引言快速排序算法算法描述将区间按照基准值划分为左右两半部分的常见方式:1、Hoare版2、挖坑法3、前后指针法 快速排序的优化规模较小时的优化 三数取中法 非递归实现快速排序快速排序总结什么时候最快当输入的数据已经是正序时(都已经是正序了,我还需要你冒泡排序吗?)什么时候最慢当输入的数据是反序时(写一个 for 循环反序输出数据不就行了,干嘛要用你冒泡排序呢?)算法稳定性 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相......

2022-06-29 22:18:24 11407 13

原创 【数据结构】这些二叉树经典面试题帮你快速入门二叉树

二叉树入门到精通

2022-06-27 19:21:03 1720 7

原创 【数据结构】必掌握的链表面试题

我们在学习了链表的有关知识后,有必要来看几个链表的经典面试题,让我们一起来学习一下吧1.删除链表中等于给定值 val 的所有节点力扣给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]这个删除的核心是:要找到需要删除的节点的上一个节点由于在一开始就处理头节点就需要......

2022-05-09 23:10:10 1311 8

原创 C语言实现入门级小游戏

上一期咱们用C语言实现了三子棋的小游戏 C语言实现三子棋 今天我们再来写个扫雷的游戏,说起扫雷,相信大家都不陌生,可能许多朋友还是玩扫雷的高手。其实扫雷和三子棋有许多相似之处,都需要用到数组的知识。 今天的扫雷也是相当有趣的由于博主是一个编程学习的小白,所以这只是扫雷的初级版,此版本有一些功能还无法实现,在后续的学习中,我会持续更新,不断对这个小游戏进行优化,期待大家的关注,还有,这篇文章中若有错误或不当的地方,欢迎大家指正!关于这个扫雷项目的代码,.........

2021-11-10 20:11:03 20019 23

原创 【FPGA】verilog基础语法与应用:位操作 / 模块调用——流水灯(跑马灯)

今天的实验是计数器实验的升级,设计让8个LED灯以每个0.5s的速率循环闪烁。在led_run2的文件中例化3-8译码器的文件。从结果我们可以看出,与之前的一样,证明我们成功了。每个LED灯代表一位,共8位,亮为1,灭为0。第一个状态需满足最低位为1,然后每次左移1个。,现在我们改进一下,使用。如何实现这样的逻辑呢?

2022-11-12 19:28:54 4693 13

原创 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯

D从高电平变化成低电平,但是此时CK未来到上升沿,所以Q不随着D变化(虽然D变了,Q仍保持刚刚的状态——存储功能)由于500ms亮和灭,所以我们需要计数器计数 500ms/20ns = 25000000次。当CK来到上升沿,Q需要根据D发生变化,由于D是高电平,所以Q要从低电平变化成高电平。当D处于高电平时,CK未处于上升沿时,Q仍处于低电平。CK来到上升沿,此时D又恢复了高电平,所以Q不变。这样就能实现 每一个时序上升沿,计数器结果都加1。每到一个上升沿,计数器的值加一次。我们就需要一个计数器,

2022-11-12 15:55:50 3022 2

原创 【FPGA】组合逻辑 3-8译码器实现

(img-s2A2GWLh-1668239237075)](img-z5WKxPTl-1668239237075)]3位的信号的值是n,8位输出信号的第n位上数字就为1。根据功能仿真,我们可以发现,程序能满足我们的需求。将三位的输入信号译码得到一个8位的输出信号。图中为abc=101 (5) 第5位亮。,程序能满足我们的需求。什么是3-8译码器?

2022-11-12 15:48:58 1871 3

原创 你的第一个基于Vivado的FPGA开发流程实践——二选一多路器

我们还能看到毛刺,原理是(a、b、sel都在变,只要某一次变化中,其中一个的变化优先于另外两个,就会有毛刺)通过时序仿真我们可以看到 out的变化滞后于信号的变化,这说明out的变化是有一定延迟的,这是合理的。图中展示的为 sel = 1 ,a = 1的情况 (out = a = 1 灯亮)然后refresh device 再 program device。我们可以根据左边的这些值 判断功能是否能达成。首先我们需要用一张图说明仿真测试的原理/意义。现在开始编写仿真代码,我们首先要知道的是。

2022-11-12 01:18:24 1349 5

原创 【JavaScript案例】表白墙、猜数字游戏

N*100+1 ——> 1

2022-09-23 01:21:09 1124 6

原创 JavaScript(WebAPI)

一个页面上,有很多HTML标签,每个标签(tag)也称为是一个元素(element),获取元素,就类似于,操作数据库时得先use 一下数据库。可以看到 innerHTML 不光能获取到页面的 html 结构, 同时也能修改结构. 并且获取到的内容保留html源码中的空格和换行.是属于新版本HTML中支持的,针对一些比较老的浏览器,可能无法使用,不过当前使用的主流浏览器chrome这些肯定没问题。注:浏览器是有内置的调试工具的,我们可以用浏览器中的调试工具对我们的代码进行调试。,不仅仅是 document。

2022-09-23 01:20:04 594 5

原创 CSS基础入门手册

块级元素,高度,宽度,内外边距,行高,都是可以控制的;而行内元素,设置高度,宽度,行高,都是无效的,设置内边距都有效,外边距的话,左右外边距有效,上下外边距无效.计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示为 00-FF).块级元素,内部的元素可以是块级元素,也可以是行内元素;我们的显示器是由很多很多的 “像素” 构成的. 每个像素视为一个点, 这个点就能反映出一个具体的颜色.行内元素宽度则是内容本身 (里面包含的文字宽度是相关的)

2022-09-16 20:40:08 1336 2

原创 【nowcoder】统计回文、连续最大和

此题最容易想到的就是暴力累加,但是时间复杂度是O(n^2),怎么做到更优化呢?不要在str1里插入,这样会使str1发生变化,再重新创建一个字符串来插入。求出来是1了,再加上自己array[3]是最大的。,题意很简单,就是求哪一段的子数组的和最大。的数做为结尾的最大子序列和,注意是以。现在我们开始细细品一下上面这个递推式,求。我求出来是 -100,那如果我也是。本题是一个经典的动规问题,简称。那么还有一种可能就是说如果。反而是累赘,最大就是自己。这是用正常判断回文的方法。的话是-93, 这时候。

2022-09-13 19:00:55 274 2

原创 【nowcoder】计算糖果、进制转换 Java题解

分析:本题题目很简单,题目的本意就是将10进制的数转换成N进制。N(2 ≤ N ≤ 16)可以看出进制最多可以到16进制。X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。N进制数,每个进制位的值分别是X0。

2022-09-12 20:52:17 195

原创 【nowcoder】找出字符串中连续最长的数字串、数组中出现次数超过一半的数字(三种思路解决)

如果两个数不相等,就消去这两个数,最坏情况下,每次消去一个众数和一个非众数,那么如果存在众数,最后留下的数肯定是众数。:数组排序后,如果符合条件的数存在,则一定是数组中间那个数。这种方法虽然容易理解,但由于。:先给数组排序,利用map的key value模型来存放。众数:就是出现次数超过数组长度一半的那个数字。涉及到快排sort,其时间复杂度为。

2022-09-12 13:40:42 369 3

原创 学了HTML,快来试着做一份简历吧

之前我们熟悉了HTML的一些基本操作,今天我们就用这些知识来尝试着做一份简历吧~我们先来看一下完成后的效果图接下来我们就来实现一下吧~具体实现代码案例二:填写简历信息我们经常会遇到 让我们填写简历,或者填写各种信息的情况,今天我们就用HTML实现一个填写简历信息的页面吧先上效果图!是不是还不错呢!下面看整体代码实现步骤拆解由于我们希望这个页面是对齐的,所以我们使用表格来完成出生日期:我们需要写成可下拉菜单应聘岗位:我们需要写成复选框的样式由于红色方框是空白,所以我们需要空一列出

2022-09-10 21:22:00 6717 5

原创 【nowcoder】排序子序列、倒置字符串

​ 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2。拿到题目我们很可能会对排序子序列的概念产生疑问。但其实我们不需要过度思考,只需要知道。分析:我们只需要分成三种i情况考虑。, 非递减就是。

2022-09-08 15:11:53 288

原创 【nowcoder】牛牛举办编程比赛、删除公共字符

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i,现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.就可以,我们每次尽量取最大,但是最大的数不可能是中间的数,所以退而求其次,取 每组中第二大的。,则删除之后的第一个字符串变成。

2022-09-08 15:09:20 484 1

原创 Java中的文件操作(基础知识+三个小程序练习)

Java中的文件操作(基础知识+三个小程序练习)

2022-08-06 14:44:43 8588 12

原创 多线程案例——定时器

也是软件开发中的一个重要组件.类似于一个“闹钟”.达到一个设定的时间之后,就执行某个指定好的代码.比如网络通信中,如果对方500ms内没有返回数据,则断开连接尝试重连.比如一个Map,希望里面的某个key在3s之后过期(自动删除).定时器是一种实际开发中非常常用的组件.类似于这样的场景就需要用到定时器。很多细节的解析再注释中注明。...

2022-07-30 16:47:48 271 1

原创 多线程案例——阻塞式队列

阻塞队列、生产者消费者模型

2022-07-30 16:40:33 401 6

原创 多线程(基础)

多线程基础

2022-07-22 17:01:52 623 5

原创 JDBC中的增删改查操作

基于JDBC的增删改查操作

2022-07-18 12:36:37 866 17

原创 如何实现Java的JDBC编程(基本概念,驱动包安装)

实现JDBC编程(基本概念,驱动包安装,代码)

2022-07-17 10:06:34 734 11

原创 快速解决MySQL插入中文数据时报错或乱码问题

快速解决MySQL中文报错或乱码问题

2022-07-15 11:51:50 3287 9

原创 【数据结构】二叉搜索树

目录概念二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除二叉搜索树的性能分析二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 第一大种情况、cur.left == null 我们以这一大种情况为例,画图解析,后面其它情况类推即可 第二大种情况、cur.right == null 第三大种情况、cur.left != null && cur.right != null (也是最难的一种情况) 我们以找右树的最小值为例,画图帮助理解 关于二叉搜索树的插入、查找、删除有关代码

2022-07-02 21:19:27 338 11

原创 【八大排序④】归并排序、不基于比较的排序(计数排序、基数排序、桶排序)

目录一、归并排序 二、计数排序三、基数排序 四、桶排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序核心步骤: 代码(递归) 代码(非递归) 算法的步骤如下: 代码 【计数排序的特性总结】1. 计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。2. 时间复杂度:

2022-07-01 16:37:51 527 6

原创 【八大排序②】选择排序(选择排序,堆排序)

目录 一、选择排序关于选择排序 算法步骤:代码实现 【直接选择排序的特性总结】 二、堆排序堆排序算法的基本思想 【直接选择排序的特性总结】选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。 【直接选择排序的特性总结】 之前我们已经介绍过了大根堆、小根堆的概念,而堆排序就是利用堆(排升序建大根堆,降序建小堆)进行排序的方法。如图,就是一个大根堆,90为最大值,将90与20(末尾元素)互换

2022-06-28 23:34:06 145

原创 【八大排序①】插入排序(直接插入排序、希尔排序)

关于排序,相信大家一定不陌生,在生活中我们见过许多排序,比如在购物网站搜索时,有根据价格排序、根据好评度排序、根据销量排序,我们根据关键字使内容具有一定的顺序,这便是排序。 排序主要为 基于比较的排序 和 不基于比较的排序 上图的7中排序都是基于比较的排序 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。实际中我们玩扑克牌时,就用了插入排序的思想。 我们用一张图来领略一下直接插入排序算法的思想我们定义一个 i 和 j,将数组按升序排序

2022-06-28 21:50:05 483 2

原创 【数据结构】二叉树 (Binary Tree)

二叉树快速入门

2022-06-27 19:20:22 2226 7

原创 【数据结构】这些栈、队列的经典面试题你还不知道吗?

力扣在做这道题前,我们需要有 栈 的先驱知识,可以参考本人的这篇博客(41条消息) 【数据结构】栈_Living_Amethyst的博客-CSDN博客 分析:由于队列的特点是“先进先出”,而栈的特点是“后入先出”,所以用队列实现栈 仅用一个队列是不能实现的,需要两个队列我们的思路是:入的时候都入到不为空的队列里,出的时候就把不为空的队列里的除了要出的元素之外的其他(size-1)个元素都移到为空的队列里 二.用栈实现队列力扣 分析:和上一题类似,若要用栈实现队列,我们需要两个栈

2022-06-22 00:07:36 294 3

原创 【数据结构】队列(Queue)

轻松理解数据结构中的队列

2022-06-21 22:23:47 685 8

原创 【数据结构】栈

一.栈(stack)的基本概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈顶(Top):线性表允许进行插入和删除的一端。 栈底(Bottom):固定的,不允许进行插入和删除的另一端。 空栈:不含任何元素。如上图:a1为栈底元素,an为栈顶元素。由于栈只能在栈顶进行插入和删除操作,故进栈次序依次为a1,a2,... ,an 而出栈次序为an,...,a2,a1。栈的明显的操作特征为后进先出(Last In First Out,LIFO),故又称 后进先出的线性表。

2022-05-14 13:03:44 1000 2

原创 【数据结构】LinkedList与链表

【引言】上篇文章我们介绍了ArrayList的使用以及它的一些相关知识,还模拟实现了简单的顺序表 我们在这个过程中,有了以下的思考:ArrayList的底层是使用数组来存储元素的 这就导致当ArrayList的任意位置插入或删除元素时,就需要将后续元素整体向后移或者向前移,所以时间复杂度为O(N) 因此ArrayList不适合做任意位置插入和删除比较多的场景 所以,Java集合中又引入了LinkedList,即链表结构1.链表1.1链表的概念和结构 ......

2022-05-11 20:13:26 981 7

原创 【数据结构】ArrayList和顺序表

1.线性表 线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,...

2022-05-01 00:32:41 1487 7

原创 时间复杂度和空间复杂度

我们如何去衡量一个算法的好坏呢?通过算法效率算法效率分析分为两种:第一种是时间效率 第二种是空间效率时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度1.时间复杂度时间复杂度的定义:在计算机科学中.

2022-04-25 20:46:59 798 5

原创 【Java】泛型

今天我们学习一下泛型的有关知识目录1. 什么是泛型2.泛型2.1语法3.使用泛型类3.1语法3.2 示例4.裸类型5.泛型是如何编译的5.1 擦除机制5.2 为什么不能实例化泛型类型数组6.泛型的上界7.泛型方法8.通配符9.包装类装箱和拆箱1. 什么是泛型 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会...

2022-04-23 18:42:17 592 6

原创 【JavaSE】String类

【本节目标】1. 认识 String 类2. 了解 String 类的基本用法3. 熟练掌握 String 类的常见操作4. 认识字符串常量池5. 认识 StringBuffer 和 StringBuilder1.常用方法1.1字符串构造String类提供的构造方式非常多,常用的就以下三种: public static void main(String[] args) {// 使用常量串构造 String s1 = "hello world"; .

2022-04-17 14:56:44 843 11

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除