Fork me on GitHub

Leetcode-019-删除链表的倒数第N个节点

Leetcode-019-删除链表的倒数第N个节点

题目描述

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

1
2
3
4
5
示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

方法:两次遍历

  • 首先从头节点开始对链表进行一次遍历,得到链表长度L
  • 随后我们再从头节点开始对链表进行一次遍历,当遍历到链表的第L - n + 1个节点时,他就是我们需要删除的节点
  • 为了和提题目中的n保持一致,节点的编号从1开始,头节点为编号1的节点。

mark

阅读更多...

操作系统-13-内存基础

操作系统-13-内存基础

前言

mark

1. 内存的概念

1.1 存储单元

mark

1.2 几个常用数量单位&内存地址

mark

2. 运行的基本原理

2.1 指令的工作原理—操作码+若干参数(可能包含地址参数)

  • 从X=X+1大致看一下指令的执行过程

mark

mark

mark

2.2 逻辑地址(相对地址)vs物理地址(绝对地址)

mark

举个例子:

mark

2.3 从写程序到程序运行—编译、链接、装入

mark

2.4 装入概念

  1. 错误示范

mark

不修改装入模块中的指令地址就直接装入内存的话:

mark

3. 装入的三种方式

①绝对装入

mark

②静态重定位

mark

③ 动态重定位

mark

mark

mark

4. 链接的三种方式

① 静态链接

mark

② 装入时动态链接

mark

③ 运行时动态链接

mark

参考书籍:《王道考研计算机操作系统》

参考博客https://mubu.com/doc/Cd-Y4YOfkh#o-1d01735b78f18c07f

Netty-03-零拷贝

Netty-03-零拷贝

前言

在Java程序中,常用的零拷贝有 mmap(内存映射)和 sendFile。

零拷贝不仅仅带来更少的数据复制,还能减少线程的上下文切换,减少CPU缓存伪共享以及无CPU校验和计算。

1. 传统的IO读写

1
2
3
4
5
6
7
8
File file = new File("test.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");

byte[] arr = new byte[(int) file.length()];
raf.read(arr);

Socket socket = new ServerSocket(8080).accept();
socket.getOutputStream().write(arr);

mark

  • 三次内核态用户态切换
  • 四次拷贝
    • DMA
    • kernel buffer - > user buffer
    • user buffer -> socket buffer
    • DMA
阅读更多...

操作系统-11-经典进程同步互斥问题

操作系统-11-经典进程同步互斥问题

1. 消费者-生产者问题

1. 问题描述

  • 系统中有一组生产者进程一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注: 这里的“产品”理解为某种数据)
  • 生产者、消费者共享一个初始为空、大小为n的缓冲区
  • 只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。
  • 只有缓冲区不空时,消费者才能从中取出产品,否则必须等待。
  • 缓冲区是临界资源,各进程必须互斥地访问。

mark

阅读更多...

java8-新特性-lambda

java8-新特性-lambda

前言

  • 理解 : 可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:

    • 它没有名称,但它有参数列表,函数主体,返回类型,可能还有一个可以抛出的异常列表。
  • java中,引入了一个新的操作符“->”,该操作符在很多资料中,称为箭头操作符,或者lambda操作符;箭头操作符将lambda分成了两个部分:

    1. 左侧:lambda表达式的参数列表
    2. 右侧:lambda表达式中所需要执行的功能,即lambda函数体
    3. lambda表达式语法格式;
  • 函数式接口定义:接口中只有一个抽象方法的接口,称为函数式接口;

    • 可以使用@FunctionalInterface注解修饰,对该接口做检查;如果接口里,有多个抽象方法,使用该注解,会有语法错误
阅读更多...
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信