自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux内核学习】让C语言实现面向对象的多态功能的两个宏:container_of和offsetof

利用container_of和offsetof可以实现由结构体成员获取结构体首地址,在linux内核中这两个宏就得到大量的应用,最常见的就是内核中的链表大量使用了这两个宏。linux的链表实现非常别具一格,只有前后节点的指针,而不具备数据域,想要获取外层结构体就要使用container_of。具体可以阅读linux中链表的代码。

2023-09-05 14:00:19 315 1

原创 全面总结JAVA多线程问题

一、线程与进程 程序: 是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。 进程: 是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。-------生命周期 **线程:**进程可进一步细化为线程,是一个程序内部的一条执行路径 ...

2021-07-27 19:25:43 240

原创 排序算法总结

本文章选取常用的几个排序算法进行了总结,其中包含:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序和堆排序。 标题算法复杂度总结表如下 平均时间复杂度 空间复杂度 最好情况时间复杂度 最差情况时间复杂度 冒泡排序 O(n2)O(n^2)O(n2) O(1)O(1)O(1) O(n)O(n)O(n) O(n2)O(n^2)O(n2) 选择排序 O(n2)O(n^2)O(n2) O(1)O(1)O(1) O(n2)O(n^2)O(n2) O(n2)O(n^2)O(n2) 插入

2021-07-21 21:01:28 135

原创 LeetCode刷题笔记3---加一

**题干** 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。 **题解** 可考虑直接在数组中进行修改,对数组进行倒序遍历,判断当前位置是否需要进位,再进行下一步修改。 .

2020-08-08 20:23:33 204

原创 LeetCode刷题笔记2---分割数组的最大值

**题干:** 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例: 输入: nums = [7,2,5,10,8] m = 2 输出: 18 解释: 一共有四种方法将nums分割为2个子数组。 其中最好的方式是将其分为[7,2,5] 和 [10,8], 因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。.

2020-07-25 20:47:04 438

原创 LeetCode刷题笔记1---最小路径和

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 思路: 利用动态规划的思想可以简单求解。 ...

2020-07-23 20:27:12 199

空空如也

空空如也

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

TA关注的人

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