自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTML常用标签

HTML的常用标签以及骨架构成

2022-11-02 14:14:10 130 7

原创 网络的基本概念

IP地址、端口号、协议、协议分层、封装、分用、客户端、服务器、请求、响应

2022-10-09 13:48:40 5448 38

原创 Java创建字符串的两种方式在地址上的区别

我们知道,在Java中有两种创建字符串对象的方式有什么区别么

2022-10-08 23:31:41 320 16

原创 动态规划dp(三个案例详解)

dp(Dynamic programming)即动态规划的简写。动态规划的思想是找出大问题对应的子问题,通过若干子问题寻找解决这个大问题的递推公式或者方法的思想即大化小,小化更小。例如求第n个斐波那契数就需要求出n-1与n-2的斐波那契数字往前一步一步推导出第n个数。

2022-10-07 23:54:26 516 21

原创 根据前序遍历和[中序遍历]

​1. 递归法:先序遍历:根节点→左子树→右子树。中序遍历:左子树→根节点→右子树。后续遍历:左子树→右子树→根节点。根据前序遍历和中序遍历建立二叉树,根据以上性质可知:​

2022-10-06 23:40:15 305 4

原创 Java类&对象&封装

从认识论角度考虑是现有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。从代码运行角度考虑是先有类后有对象。类是对象的模板。

2022-10-04 09:26:55 341 17

原创 哈希桶(详解&创建)

开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址(index = x % array.length()-1),具有相同地址的关键码归于同一子集合,每一个子集合称为一个哈希桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。

2022-10-03 09:39:55 1538 23

原创 二叉搜索树(从0-1手把手讲解)

二叉搜索树又称二叉排序树,是一种可以进行快速查询的二叉树类型。

2022-10-01 19:57:01 605 14

原创 了解IO,内外存,文件操作这一篇就够了

IO是input和output两个词的首写,也就是输入和输出,他描述的是计算机数据流动的过程。一台计算机必须有CPU,内存,主板,电源等。而外设如键盘,鼠标,显示器等是我们与计算机交流的媒介,这种将我们的操作给到计算机或者读取计算机的内容的过程正是输出与输入。从计算机架构上来讲,任何涉及计算机核心(CPU和内存)与其他设备进行数据转移的过程就是IO。例如从硬盘将数据放入内存的过程就是输入,将数据从内存放入硬盘的过程就是输出。这都是相对CPU以及内存来讲的。

2022-09-30 16:50:09 569 2

原创 死锁的四个必要条件及避免策略

互斥条件:一个被加锁的资源一次只能被一个线程访问不可掠夺:当线程获取资源在未完成时其他线程不可以抢夺资源的锁。请求与等待:当资源被线程获取后其他线程想要请求这个资源只能阻塞等待。循环等待:若干个线程形成了一种头尾相接的情况,将所有的资源都占用导致整体死锁或者局部死锁。

2022-09-28 19:40:42 85 1

原创 Semaphore(信号量)介绍以及实例

Semaphore翻译过来是信号量的意思,它的作用是控制多个线程对同一个资源的访问线程数量。比如在停车场停车,里面有10个车位,当这10个车位被停满的时候其他的车只能等待(堵塞)里面有车驶出(release)然后再进入。

2022-09-28 17:29:41 188 2

原创 多线程(Thread类、线程创建、中断、等待、休眠)

全面概述了多线程Thread,线程创建,等待,休眠,堵塞,状态等概念,并用实例解释了线程的创建线程是轻量级进程,一个进程可能包含一个者多个线程。进程频繁的创建消耗的资源比创建线程大家更大,所以引入了线程的概念。

2022-09-02 09:35:08 119

原创 进程和线程的区别和联系

正在运行的程序的实例在操作系统没有引入进程的时候,CPU每次只能执行一个程序多个程序只能顺序执行,这样就造成了资源的浪费浪费了大量的时间,为了提高CPU的利用率于是操作系统引入了进程以及中断处理,这样就实现了通一时间内可以运行多个程序提高效率。.........

2022-09-01 09:57:58 99

原创 进程、进程调度、PCB(详解)

什么是进程?操作系统对进程的调度、进程的创建到销毁为管理进程,操作系统先会创建一个PCB具体内容:我们知道一个cpu核心可以运行一个进程,那为什么我们还可以开启那么多的应用一起使用呢?......

2022-08-31 13:03:17 624

原创 Java之JDBC编程

JDBC(Java Datebase Connectivity)全名Java数据库连接,是一种通过使用Java与数据库约定风格的API来连接代码和数据库的编程方式,即可以用java代码来操作数据库。二、什么是API ?又为什么会有JDBC这个编程方式呢?它存在的意义是什么呢?API(Application Programming Interface)全名应用程序编程接口,就是我们了解到的函数 / 类 /方法,这样”连接“上就可以使用其中的接口,就像是充电线和手机,我们要充电就需要把可以充电的充...

2022-08-27 18:00:56 323

原创 线性表练习扑克牌游戏(炸金花)

​我们需要先有个大概的框架进行起来才能更加高效有条理。要玩炸金花我们需要一副牌,有了牌我们需要将牌打乱,打乱了我们要发牌,好吧听起来很简单是不是突然感觉没那么难了确实是这样,不要急我们再来丰富一下细节,我们要一副牌就需要定义扑克牌是含有什么内容的,我们以哪种方式存放它?(看题目都知道肯定是线性表!!) 我们怎么洗牌呢,洗了牌怎么发牌???​...

2022-06-13 18:49:13 623 1

原创 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串提示:1 ...

2022-06-08 16:57:06 93 1

原创 简单的讲懂KMP算法(配图最细保姆级手把手教会!!)

KMP 算法(Knuth-Morris-Pratt 算法)是一种高效的字符串匹配算法,他比较BF算法复杂度更低但是也更难理解,它的算法非常精妙减少了BF算法(暴力算法,上一篇博客有讲解)的无用重复操作大大减少了循环次数,再加上限制条件使得它的效率更加高效,我有看到许多大神在讲KMP算法但是大部分都是理论性讲述,不易懂打退了许多学者的热情以及自信心,我将会保姆级和大家分析KMP算法的思想以及代码的实现!!!

2022-06-02 15:18:30 690 8

原创 BF算法(字符串查找)

BF(Brute Force)算法和它的名字一样,就是暴力!没有什么技巧性,就是一个个进行比较得出最后的结论,这个方法也是最通俗易懂的,后面一篇我有写KMP算法是对BF算法的极大优化包括对next数组的优化。学完这个BF算法看看你是否对KMP算法感兴趣,如果有兴趣可以学习下我的下一篇KMP算法

2022-06-01 16:57:58 383

原创 字符串中的第一个唯一字符&&有效的字母异位词(多思路)

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。示例 1:输入: s = "leetcode"输出: 0示例 2:输入: s = "loveleetcode"输出: 2示例 3:输入: s = "aabb"输出: -1 提示:1

2022-06-01 00:51:06 41

原创 整数反转问题(符号与越界问题)

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <= 231 - 1思路一:每次得到数字的个

2022-05-30 14:03:41 130

原创 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]

2022-05-30 13:54:33 44

原创 力扣LeetCode初级算法(旋转图像)

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。我们需要去观察这个数组的变化,这个题就是找规律的题,他实则是将数组每一行从最上面与最远处没有交换过的行先交换然后再进行对角交换

2022-05-29 23:43:12 77

原创 力扣LeetCode初级算法(两数之和,有效的数独)

请你判断一个9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)

2022-05-29 22:11:52 1028

原创 力扣LeetCode初级算法(加一,移动零)

坚持刷题的第五天力扣https://leetcode.cn/leetbook/detail/top-interview-questions-easy/数组给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。java方法加一初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台思路一:这个题的意思是把一个数的.

2022-05-27 16:11:47 936

原创 力扣LeetCode初级算法(只出现一次的数字&两个数组的交集 II)

坚持刷题的第四天力扣https://leetcode.cn/leetbook/detail/top-interview-questions-easy/数组1.只出现一次的数字Java方法初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台思路一:运用按位异或的方法,异或是当两个数的相同二进制位置相同时返回0,不同则返回1,运用这一特性我们可以将nums数组元素进行异或得到单独的数字class Solution { public int

2022-05-26 13:27:40 651

原创 力扣LeetCode初级算法(存在重复元素)

思路一:将数组进行排序使用Arrays.sort(temp)方法进行排序,然后比较每一个相邻的数据是否相同即可,思路二:Set类的集合中不能有重复的元素,如果有在传入的时候会失败返回false,所以我们将数组传入到Set类的数组中进行检查

2022-05-26 00:22:25 40

原创 力扣LeetCode初级算法每日一题(旋转数组)

坚持解算法的第二天Java版本坚持每天在LeetCode坚持刷算法,有兴趣的小伙伴可以和我一起坚持刷题!初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/leetbook/detail/top-interview-questions-easy/数组旋转数组​​​​​​初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台思路一:观察旋转的数组步数k可能大于数组的长度一旦达到数组的长

2022-05-25 00:52:39 53

原创 力扣LeetCode初级算法每日一题

从今天开始坚持每天在LeetCode坚持刷书记算法题有兴趣的小伙伴可以和我一起坚持刷题Java版本链接:初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/leetbook/detail/top-interview-questions-easy/买卖股票的最佳时机 II链接:初级算法 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/leetbook/detai

2022-05-23 23:58:46 129

原创 Java图书管理系统(代码及详解)

我们先把需要的操作先罗列出来然后再一点点实现这个图书管理系统,一个图书管理一定要有书的属性、书架、需要的一些操作、用户界面以及串联其他们的操作图书管理系统在C、C++、Java学习中我们都会进行练习来串联我们学习的一些知识以及使用场景,这里跟着我我带大家敲Java版本!

2022-05-19 19:26:49 11329 15

原创 Java类与对象(例子讲解)

对象是类的实例化,讲这个类的“图纸”实例化成了一个洗衣机,我们就可以去用这个对象去做我们想要实现的内容了。类与对象是面向对象中最基本的组成单元,先有模板才有实物、现有类才有对象。

2022-05-11 11:19:09 871

原创 用宏实现二进制奇偶位的交换

我们知道宏函数是不可以递归的,所以我们的想法不是把每一位的内容进行交换而是取出偶数位所有的内容和奇数位置的内容通过左右移动加上或运算实现我先把代码放在这里#define swapbit(n) (((n&0x55555555)<<1)|((n&0xaaaaaaaa)>>1))我们要想得到奇数位的内容就需要将n的偶数位置与0,奇数位置与1,而要得到偶数位就需要偶数位置与1,奇数位与0,所以要得到奇数位就需要与上01010101010101010101010

2022-04-24 10:21:44 42

原创 Random类和Math.random生成的随机数

Random这个类包含于(import java.util.Random;)Random random=new Random();Random产生随机数是伪随机数,产生的随机数是根据时间戳作为种子而产生一个32位的随机数所以范围是-2147483648~2147483647,如果每次的种子相同产生的随机数就是相同的,我们也可以主动设置种子,在new Randow(seed:num)填入num,也可以改变产生随机数的范围int num=random.nextInt();在()中间填入值,注

2022-04-24 10:20:24 167

原创 memset,calloc的区别

memset的作用是把ptr所指向内容中的前num个字节全部转换成val,作用在栈上一般用作初始化.calloc的作用是把大小为size的num个在堆上的内容全部转化成0,作用在堆上一般用于初始化。栈区存放里面的变量通常是局部变量、函数参数等,堆区存放动态分配内存的内容,静态区存放全局变量和静态变量。具体可以参考底部链接​​​​​​(14条消息) 内存中栈,堆,静态区到底有什么区别?_#include的博客-CSDN博客_堆栈静态区的区别ahttps://bl...

2022-04-09 23:07:24 111

原创 结构体内存对齐,位段

结构体内存对其1.第一个成员在与结构体变量偏移量为0的地址处。 2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的值为8 3. 结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。 4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整 体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。为什么存在内存对齐? 大部分的参考资料都是如是说的: 1. 平台原因...

2022-03-30 00:08:07 45

原创 memcpy和memmove的区别及实现

我们先上定义作用:将 num 字节的值从source所指向的位置复制到destination所指向的内存块。作用:将 num 字节的值从source所指向的位置复制到destination所指向的内存块。复制站的内容和使用中间缓冲区一样时,允许destination和source重叠。memmove和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。 如果源空间和目标空间出现重叠,就得使用memmove函数处理。我们用图来解释:先用memcpy​​​​​​​

2022-03-28 22:14:48 730

原创 大小端字节序(存储)——百度,华为,腾讯,深信服大厂面试题(详解)

如果你听懂了我所讲述的内容我们离大厂offer又进了一步!!!一.介绍维基百科:字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指电脑内存中或在数字通信链路中,组成多字节的字的字节的排列顺序这个的意思就是数据在存储的时候字节的存储顺序不同叫做字节顺序。二.种类我们都知道内存的作用就是存储数据,而存储的方式在不同的操作系统上方式也是不同的所以字节序经常被分为两类:1.Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内...

2022-03-02 16:53:21 177

原创 C语言——扫雷1.0(详细分析代码及思路)

扫雷应该是我们每个人都不陌生的游戏了,就算是现在上专业课的时候也会有人在机房打开扫雷小秀一把自己的实力,但是我从来都不会玩这个游戏,直到我写出了它的1.0版本,在接下来,我还会更新不是黑框的扫雷游戏!!!代码放在gitee:1_24/扫雷 · 404NOt/homework - 码云 - 开源中国 (gitee.com)github:homework/1_24/扫雷 at main · N404NOt/homework (github.com)(音乐文件也在里面)下面我先来演示下我.

2022-01-24 13:03:20 3836 1

原创 C语言入门项目:三子棋小游戏(详解)

C语言入门项目:三子棋小游戏(详解),不要担心学不会,那是没有项目!!!

2022-01-23 12:08:58 2621 1

原创 缓冲区,缓存,fflush(stdin)如何使用?

本人也是初步学习缓冲区问题,如下面有不正确或者表达不当的地方还请大佬在评论区斧正!!!对初学者来说fflush(stdin)被解释为清除输入缓存但在不同的时期它的作用也在不断淘汰。缓冲区问题也能困扰了不少c语言小白或者一些人学习的脚步,那什么是缓冲区,缓存,以及怎么结决这些问题呢?那我一一给大家介绍,基础懂了就懂了其中的原理(博主可能会发布新的关于缓冲的问题或者其他问题的观点所以给波关注不迷路!!!)我们将以以下代码作为实例一、什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分.

2022-01-14 12:11:53 2182

空空如也

空空如也

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

TA关注的人

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