自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 707. 设计链表(LeetCode)

707. 设计链表设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入...

2022-01-30 21:45:56 157

原创 206. 反转链表(LeetCode)

206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?...

2022-01-30 21:31:08 146

原创 34. 在排序数组中查找元素的第一个和最后一个位置(LeetCode)

34. 在排序数组中查找元素的第一个和最后一个位置(LeetCode)给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为O(log n)的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,8,8,10]...

2022-01-29 15:54:51 173

原创 704. 二分查找(LeetCode)

704. 二分查找(Leetcode)给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums ...

2022-01-29 15:48:03 7091

原创 Unix/Linux操作系统分析实验四 设备驱动: Linux系统下的字符设备驱动程序编程

本文章用于记录自己所学的内容,方便自己回顾复习。实验内容内容一:编写一个字符设备驱动,并利用对字符设备的同步操作,设计实现一个聊天程序。可以有一个读,一个写进程共享该字符设备,进行聊天;也可以由多个读和多个写进程共享该字符设备,进行聊天。内容二: 生产者-消费者并发实例的实现机制(教材P191)随着人们生活水平的提高,每天早餐基本是牛奶、面包。而在牛奶生产的环节中,生产厂家必须和经销商保持良好的沟通才能使效益最大化,具体说就是生产一批就卖一批,并且只有卖完了,才能生产下一...

2022-01-28 16:46:59 3510 4

原创 Unix/Linux操作系统分析实验三 文件操作算法: 实现在/proc目录下添加文件

本文章用于记录自己所学的内容,方便自己回顾复习。实验内容内容一:编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world。/proc 文件系统简介: /proc 文件系统是Linux上的一种虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以更改其中某些文件来改变内核的运行状态。最初开发 /proc 文件系统是为了提供有关系统中进程的...

2022-01-28 16:28:42 2979

转载 数据基础知识(算法)

本文章用于记录自己所学的内容,方便自己回顾复习。数组在内存中的存储方式:数组是存放在连续内存空间上的相同类型数据的集合,即数组中的相同数据类型的元素存储在内存空间上的连续内存单元中。数组可以通过下标索引的方式获取到下标对应的元素。举一个字符数组的例子,如下图所示:数组的主要特性:数组的下标都是从0开始。数组在内存空间中的地址是连续的。由于数组在内存空间中的地址是连续的,故我们在在删除或者增添元素的时候,就难免要移动其他元素的地址,时间复杂度相比链表来说较高。例如当删除下标为3的元素,需要

2022-01-27 17:03:51 443

原创 Unix/Linux操作系统分析实验二 内存分配与回收:Linux系统下利用链表实现动态内存分配

本文章用于记录自己所学的内容,方便自己回顾复习。实验内容利用malloc和 calloc函数实现动态内存的分配;利用free函数实现动态内存的释放; 利用realloc函数实现调整内存空间的大小; 利用链表实现动态内存分配。 Linux操作系统原理与应用教材(第2版陈莉君)上的第四章 例 4-1(P95)、4-2(P96)、4-3(P98)、4-4(P98)、5-1(P143)、P158 Linux操作系统原理与应用教材(第2版陈莉君)上的第八章 例8-1实验步骤利用malloc函

2022-01-27 13:02:14 2207

原创 Unix/Linux操作系统分析实验一 进程控制与进程互斥

以下内容用于记录自己所学的内容,方便自己回顾复习。实验内容利用fork函数编写一个简单的多进程程序,用ps命令查看系统中进程的运行状况,并分析输出结果。 在新创建的子进程中,使用exec类的函数启动另一程序的执行;分析多进程时系统的运行状态和输出结果; 利用最常用的三个函数pthread_create,pthread_join和pthread_exit编写了一个最简单的多线程程序。理解多线程的运行和输出情况; 利用信号量机制控制多线程的运行顺序,并实现多线程中数据的共享; 分析Linux

2022-01-27 12:43:12 3370

转载 空间复杂度(学习总结)

什么是空间复杂度呢?空间复杂度是对一个算法在运行过程中占用内存空间大小的量度,记做S(n)=O(f(n)。空间复杂度(Space Complexity)记作S(n) 依然使用大O来表示。利用程序的空间复杂度,可以对程序运行中需要多少内存有个预先估计。关注空间复杂度有两个常见的相关问题1、空间复杂度是考虑程序(可执行文件)的大小么?很多人都会混淆程序运行时内存大小和程序本身的大小。这里强调一下空间复杂度是考虑程序运行时占用内存的大小,而不是可执行文件的大小。2、...

2022-01-26 21:15:16 5428

转载 时间复杂度(学习总结)

什么是时间复杂度?时间复杂度是用来干什么?时间复杂度是一个函数,用来定性描述算法的运行时间。假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时间复杂度,记为 O(f(n))。 在软件开发中,时间复杂度方便开发者估算当前程序运行的一般时间。数据规模对时间复杂度有什么影响? 从下图中可以看出不同算法的时间复杂度在不同数据输入规模下...

2022-01-26 20:46:54 3199

空空如也

空空如也

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

TA关注的人

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