自定义博客皮肤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 124 1

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

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

2021-07-27 19:25:43 166

原创 排序算法总结

本文章选取常用的几个排序算法进行了总结,其中包含:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序和堆排序。标题算法复杂度总结表如下平均时间复杂度空间复杂度最好情况时间复杂度最差情况时间复杂度冒泡排序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 78

原创 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 115

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

**题干:**给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ 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 338

原创 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 150

空空如也

空空如也

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

TA关注的人

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