自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 200. 岛屿数量

200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。解题思路: 通过对网格进行深度优先搜索,对一个网格从四个方向进行深度优先搜索,等满足几个特定条件是退出。计算进行的深度优先搜索次数即为岛屿的个数。class Solution { public int numIslands(char[][] grid) {

2021-03-16 21:17:16 148

原创 59. 螺旋矩阵 II

59. 螺旋矩阵 II给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。class Solution { public int[][] generateMatrix(int n) { int[][] ans = new int[n][n]; int left = 0; int right = n - 1; int top = 0; i

2021-03-16 19:34:52 102

原创 54. 螺旋矩阵

54. 螺旋矩阵给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素class Solution { public List<Integer> spiralOrder(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; List<Integer> res = new ArrayList<Int

2021-03-15 20:44:42 136

原创 103. 二叉树的锯齿形层序遍历

103. 二叉树的锯齿形层序遍历给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>&

2021-03-09 21:01:44 101

原创 173. 二叉搜索树迭代器

173. 二叉搜索树迭代器实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。暴力法求解class BSTIterator { List<Integer> res; public BSTIterator(TreeNode root) { res = new ArrayList<Integer>(); preorder(res,root); }

2021-03-08 21:48:55 78

原创 46. 全排列

46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]回溯法(java)class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>&g

2021-03-07 18:53:10 123

原创 300. 最长递增子序列

300. 最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [

2021-03-07 13:31:21 108

原创 232. 用栈实现队列

232. 用栈实现队列题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false示例:输入:["MyQueue", "push", "push", "peek", "po

2021-03-05 19:31:55 99

原创 354. 俄罗斯套娃信封问题

300. 最长递增子序列**题目描述:**给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [10,9,2,5,3,7,101,18]输出:4解

2021-03-04 21:26:51 129 1

原创 338. 比特位计数

338. 比特位计数题目描述: 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]法一:class Solution { public int[] countBits(int num) { int cnt [] = new int[num+1]; for( int i =

2021-03-03 20:31:19 115 1

原创 7. 整数反转

7. 整数反转**题目描述: **给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21class Solution { public int reverse(int x) {

2021-03-02 20:22:43 76

原创 1748. 唯一元素的和

1748. 唯一元素的和题目描述: 给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的和 。示例 1:输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4 。示例 2: 输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素,和为 0 。提示:1 <= nums.length <= 1001 <= nums[i] <= 100class Solution

2021-03-02 20:18:57 151

原创 304. 二维区域和检索 - 矩阵不可变

304. 二维区域和检索 - 矩阵不可变(java求解)题目描述: 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。示例:给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[1, 0, 3, 0, 5]]sumRegion(2, 1, 4, 3) -> 8sumRegion(1, 1, 2,

2021-03-02 17:48:30 102

原创 2.1应用层协议原理

2.1应用层协议原理2.1.1网络应用程序体系结构应用程序体系结构: 规定如何在各种端系统上组织应用程序,有研发者设计。三种类型:客户机/服务器对等(P2P)客户机/服务器与P2P的混合(1) 客户机/服务器体系结构(2) P2P体系结构(peer-to-peer)(3) 客户机/服务器与P2P的混合2.1.2 进程通信进程通信:同一主机中的两个进程间的通信:由操作系统控制。不同主机中进程间的通信:通过网络交换报文进行。(发送进程:产生报文并向网络发送。

2021-01-07 17:06:34 413

原创 4.5.2地址映射技术

分页技术(二) 地址映射技术页表若将应用程序的包含页号和页内地址的逻辑地址转换成内存地址,必须要有一个数据结构,用来登记页号和块号的对应关系和相关信息。这样的数据结构叫做页表系统为每个进程在内存中建立一个页表。页表内容页号:登记程序地址空间的页号块号:登记相应的页所对应的内存块号其他:登记与存储信息保护相关的信息页地址映射分页中的地址映射其实与通常的地址映射是一样的,即把程序地址转换为1内存地址,这个转换的过程是在程序执行过程中完成的,是动态地址映射。在现代计算机系统中,由系统提供

2020-11-30 13:11:23 311

原创 4.5.1分页技术

分页技术(一)程序地址空间把用户程序按系统规定的逻辑页划分为大小相等的部分,称为页。从0开始边页号,页内地址时相对于0编址。内存地址空间按系统规定的逻辑页大小划分为大小相等的区域,称为块或内存块。从0就开始编块号逻辑上相邻的页,物理上不一定相邻...

2020-11-30 13:10:03 93

原创 4.4.3碎片问题与可重定位分区分配

碎片问题与可重定位分区分配动态分区分配的碎片问题由于空闲区大小与申请内存的大小相等的情况是很少的,绝大多数情况是从一个空闲区中切去一块,剩下的部分作为一个空闲区仍保留在空闲区表中,随着时间的推移,空闲区表的发展趋势是越来越小,直至不能满足任何用户的要求。这种不能被任何用户使用的极小的空闲区叫做碎片。碎片的出现造成了存储空间的浪费。在分区分配存储管理系统中解决碎片的问题规定门限值:分割空闲区时,若剩余部分小于门限值,则不再分割此空闲区。定期压缩存储空间:将所有的空闲区集中到内存的一端,但这

2020-11-30 13:09:13 1027

原创 4.4.2连续分配方式(二)

连续分配方式(二)动态分区分配⛵动态分区分配是指系统运行的过程中建立分区,并使分区的大小刚好与作业的大小相等。动态分区需要的数据结构在动态分区存储管理中,要有相应的数据结构来登记空闲分区的说明信息,它包括空闲分区的大小和位置不同系统根据设计采用不同的结构。常用的有空闲分区表和空闲分区队列结构。系统还要设置等待分区队列,当系统中无空闲区或无满足要求的空闲区时,则把申请者送入等待队列中,等待别的进程释放内存之后再唤醒队列中的进程。动态分区的分配和回收动态分区时的三种情况动态分区回收定

2020-11-30 13:08:05 135

原创 4.4.1连续分配方式一

连续分配方式(一)定义连续分配方式是指为一个用户程序分配一个连续的内存空间。分类:单一连续分配固定连续分配动态连续分配可重定位分区分配单一连续分配★最简单,适用于单用户,单任务的OS。★内存分为两个区域,系统区,用户区。应用程序装入到用户区,可使用用户区全部的空间。优点:易于管理缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。固定分区分配★ 管理思想把内存固定分的划分为若干个固定大小区域每一分区装入一道作业★分区的划分可采用分

2020-11-30 13:01:45 146

原创 4.3程序的装入

程序的装入与链接程序执行的步骤编译由编译程序将用户源代码编译成若干个目标模块链接由链接程序将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块。装入由装入程序将装入模块装入主存的过程。程序装入采用的三种方式绝对装入方式可重定位方式在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序装入内存中时,一次性的实现逻辑地址到物理地址的转换,以后不再转换。重定位的优点与缺点优点:不依赖于硬件,可以装入有限多道程序;无需硬件支持。缺点

2020-11-30 12:56:56 531

原创 4.2存储器管理概述

存储器管理功能概述主存分配要完成内存的分配和回收工作,要求设计者选择和确定几种策略和结构:★ 调入策略★ 放置策略用户程序调入内存时,确定将其放置在何处的策略。★ 置换策略将需要将某个用户程序调入内存而内存又不够时,就需要确定哪个程序可以从内存中移走。★ 分配结构(1)用来登记内存中使用情况的数据结构(2)如位位示图,空闲分区表,队列等。引起内存分配和回收的原因进程的创建于撤销进程运行过程中所占用的内存也可能发生变化,如栈的变化。进程映像在内存和外存之间传递为了充分利用内

2020-11-29 11:18:46 158

原创 4.1存储器层次结构

存储器层次结构存储器层次结构的类图主储存器与寄存器的关系寄存器和主存储器(内存)被称为可执行储存器主存储器访问速度远远低于cpu执行指令的速度,为缓和这一矛盾,引入寄存器和高速缓存寄存器与处理机速度相同,能与cpu协调工作,价格贵,容量小。高速缓存和磁盘缓存高速缓存:寄存器和存储器之间,用于备份主存中常用的数据,减少处理机对主存储器的访问次数。主存储器的访问次数。磁盘缓存:缓和IO与主存的访问速度差异,用于暂时存放频繁使用的一部风磁盘数据和信息,以减少对磁盘的访问次数。...

2020-11-29 11:17:54 145

原创 3.8死锁的检测与解除

死锁的检测与解除死锁检测允许死锁的发生,操作系统不断监视系统进展情况,判断死锁是否发生一旦死锁发生则采取专门的措施,解除死锁并以最小大的代价恢复操作系统运行。检测时机定时检测当进程阻塞时检测死锁(其缺点是系统的开销大)系统资源利用率下降时检测死锁。检测时机资源分配图法死锁状态的充分条件是:资源分配图是不可完全简化的。...

2020-11-29 11:14:47 139

原创 3.7死锁的避免

死锁的避免原理在系统运行过程中,对进程提出每一个(系统能满足的)资源申请进行动态检查(安全性检查)根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则,予以分配。安全状态的定义注意:不安全状态不等于死锁,安全状态一定不会发生死锁。处于不安全状态不一定会发生死锁利用银行家算法避免死锁...

2020-11-29 11:13:49 123

原创 3.6 死锁的预防

死锁的预防原理设计不同的资源分配算法,来保证不发生死锁。具体做法为破坏死锁的四个必要条件之一就可。破环互斥条件破坏请求和保持条件(静态的方法)优点:简单,易于实现且安全。缺点:一个用户作业在运行时,可能不知道它的作业要使用的全部资源。延迟运行:用户作业必须等待,直到所有的资源满足才能够运行用户作业申请的全部资源中,有部分对于这个作业来说使用的次数极少,造成了资源的浪费。破坏不可剥夺条件(动态的方法)破坏环路条件(动态的方法)总结...

2020-11-29 11:10:53 114

原创 3.5死锁的基本概念

死锁的基本概念死锁的概念1. 定义:一组进程中每个进程都无限等待被该组进程中另一进程所占有的资源,而处于的一种僵持局面,若无外力作用,它们都无法向前推进,这种现象称为进程死锁,这组进程就称为死锁进程。2. 举例:死锁的四个必要条件互斥条件不可剥夺条件请求保持条件环路条件处理死锁的方法预防死锁通过设置某些限定条件,去破坏死锁的四个必要条件中的一个或多个,来防止死锁。(由于所施加的条件太严格,往往会导致系统资源利用率和吞吐量降低)避免死锁不事先采取限制去破坏产生死锁的条件,而是

2020-11-29 11:03:51 124

原创 3.4实时调度

实时调度(一种特殊的系统调度)实现实时调度的基本条件提供必要的信息开始/完成截止时间就绪时间资源要求处理时间优先级系统处理能力强采用抢占式调度机制具有快速切换机制实时调度算法的分类根据任务性质不同可分为硬实时调度和软实时调度根据调度方式的不同可分为抢占式和非抢占式根据调度时间的不同分为静态和动态调度算法在多处理机情况下可分为集中式和分布式调度算法常用的两种实时调度算法...

2020-11-29 11:00:26 177

原创 3.3进程调度及算法

进程调度及算法进程调度的任务保存处理机的现场信息按某种调度算法选取进程把处理机分配给进程:由分配程序把处理机分配该该进程,设置选中进程的处理机现场信息,交处理机控制权给该进程运行。进程调度的机制[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jgDhy3JK-1606618447844)(/img/进程调度的机制.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lEJqOB8-1606618447848)(/img/进

2020-11-29 10:57:00 184

原创 3.2作业调度及算法

作业调度及算法概述作业调度的主要决策接纳多少作业取决于系统的多道程序度接纳那些作业取决于系统的调度算法先来先服务调度算法(FCFS)有利于长作业,不利于短作业短作业优先算法(SJF)优点:能有效的降低作业的平均等待时间,提高系统吞吐量缺点:对长作业不利优先级调度算法响应比RP = 作业等待时间/作业要求的服务时间对于短作业要求的服务时间较短优先级较高;对于长作业随着等待的时间增加优先级提高;对于长作业随着等待的时间增加优先级提高...

2020-11-29 10:53:58 271

原创 3.1处理机调度概述

处理机调度概述OS功能处理机调度处理机调度概述高级调度:决定把外存上那些作业调入内存,创建进程,分配资源。低级调度:决定就绪队列中那个进程应获得处理机中级调度:实际上就是存储器管理中的对换功能作业调度及算法进程调度及算法实时调度多处理机系统中的调度死锁死锁的概念死锁的预防避免概念**死锁的预防避免死锁的检测和解除...

2020-11-29 10:40:59 147

原创 PTA上使用java的一些注意事项

java代码在pta上运行的注意事项main方法所在的类,类名用Main。在pta上运行如下java代码:public class Test{ public static void main(String[] args) { System.out.println("Hell World!"); }}pta将报如下错误:public类的更改如果在一个题中,除了要写主类,也要写其他的一些类来完成特定的功能,其他的类的前面的public修饰符要去掉public class Pr

2020-11-01 14:30:35 4707

java连锁药店进、销、存流程体系需求文档

药店进销存流程的Java需求文档java连锁药店进、销、存流程体系需求文档

2023-06-13

空空如也

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

TA关注的人

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