自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux graphic subsystem_2.DRI介绍

1. 前言上篇文章(Linux graphic subsytem(1)_概述)介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。文中提到了linux DRI(Direct Render Infrastructure)框架,但限于篇幅,没有过多介绍。蜗蜗觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How三个

2021-07-10 14:39:49 195

转载 Linux graphic subsytem_1.概述

该图以一个非常前卫的应用场景----虚拟现实(VR,Virtual Reality)游戏,说明了以图形化为主的人机交互过程:1)人脑通过动作、声音(对人脑而言,是output),控制电脑的输入设备,包括键盘、鼠标、操作杆、麦克风、游戏手柄(包含加速度计、陀螺仪等传感器)。2)电脑通过输入设备,接收人脑的指令,这些指令经过kernel Input subsystem、Middleware Gesture/Speech recognition等软件的处理,转换成应用程序(Game)可以识别的、有意义的信

2021-07-10 14:28:47 132

转载 Linux图形显示系统之DRM(wiki)

最近在研究Linux下的显卡驱动,先从图形显示系统着手学习,搬运翻译了wiki词条。一、OverviewDirect Rendering Manager(DRM)是linux内核子系统,负责与显卡交互。 DRM提供一组API,用户空间程序可以使用该API将命令和数据发送到GPU并执行诸如配置显示器的模式设置之类的操作。DRM最初是作为X server Direct Rendering基础结构的内核空间组件开发的,但从那以后它被其他图形系统(例如Wayland)所使用。用户空间程序可以使用DRM API命

2021-07-10 14:14:42 2035

原创 快慢指针步长问题(步长为N行不行?)

首先,告诉结论:无论快指针步长为多少,都可以在环中相遇!!!证明:慢指针步长为1,快指针步长为k,环的入口到链表起点的距离为x,环的长度为s。因为慢指针是一步一步走,所以它可以遍历链表中的每一个点,我们在环里找一个合适的点,便于证明。设y为s的整数倍,且y>x;这里就是在环里找一个点,假设慢指针现在位于这个点;那么快指针走过的长度肯定为ky。那么两者路径之差为(k-1)y;因为y是s的整数倍,所以肯定能遇见。为什么步长一般设为2呢?由上面的证明可知,(k-1)y = (k-1)ns,题中

2020-06-29 15:46:35 610

原创 最长连续序列

题目要求算法复杂度为O(n),所以第一个想到的是用哈希表。题目的测试用例中有负数,还有INT_MAX。所以自己用数组构造哈希表不太行,这里使用c++的unordered_set容器。大概思路为:将序列的所有元素存入哈希表,在看元素x时,假如它的最长连续序列为y,则说明x—x+y都在哈希表中。那么继续向后检查,如果遇到了x+1—x+y中的任意一个数,它的最长连续序列都会小于y,所以遍历测试用例的数组时,可以看当前元素x的上一个数x-1在不在哈希表中:如果在,则x的最长连续序列肯定小于x-1;如果不在,那么

2020-06-09 11:11:19 360

原创 动态规划 leetcode 115不同的子序列

题目描述:给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例:输入:S = “babgbag”, T = “bag”输出:5解释:如下图所示, 有 5 种可以从 S 中得到 “bag” 的方案。(上箭头符号 ^ 表示选取的字母)babg

2020-06-04 12:40:38 101

原创 二叉树前序中序后序遍历的非递归迭代解法

非递归解法需要使用栈,三种遍历方法总结下来就是:前序遍历入栈就输出,然后出栈并压入右节点和左节点;中序遍历遇到左节点就压入栈,输出出栈后如果该节点有右节点继续压入栈;后序遍历为前序遍历的翻版,入栈就输出,然后出栈压入左节点和右节点,最后整体反转;前序遍历创建一个栈用来存放节点,将头结点加入栈,然后打印。前序遍历顺序是根左右。所以先加入栈的就是右子树,然后左子树。vector<in...

2020-04-07 23:09:56 137

转载 Linux内核中读写文件数据的方法

有时候需要在Linuxkernel大多是在需要调试的驱动程序中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() filp_close(), vfs_read()vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明。下面介绍主要步骤:...

2020-04-07 12:38:19 364

原创 关于只出现一次的数的相关思路和解法

一、其他数字出现两次,只有一个数字出现一次:解法:对这组数进行异或,最后得到的结果就是只出现一次的数;二、其他数字出现三次,只有一个数字出现一次:解法:整形数字共有32位,统计每个位置上1出现的次数,如果和3取余结果为0则表示目标数字在这位的值为0;如果取余结果为1,则说明目标数字在该位的值为1;然后合成这个数字。三、其他数字出现两次,有两个数字出现一次:解法:将这些数进行异或,得到了目...

2020-04-05 18:27:21 254

原创 leetcode 96不同的二叉搜索树

问题描述:给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?思路:这道题和卡特兰数有关,关于卡特兰数的介绍可以点击:卡特兰数介绍和性质这道题可以分解为一下几步思考:假设n个节点存在二叉排序树的个数是G(n),令f(i)为以i为根的二叉搜索树的个数,则G(n) = f(1) + f(2) + f(3) + f(4) + … + f(n)当i为根节点时,其左子树节点个...

2020-03-25 02:34:57 75

原创 leetcode 122. 买卖股票的最佳时机 II

问题描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)思路:假设给定的数组为:[7, 1, 5, 3, 6, 4]如果我们在图表上绘制给定数组中的数字,我们将会得到:如果我们分析图表,那么我们的兴趣点是连续...

2020-03-22 18:23:36 71

原创 leetcode 136只出现一次的数字

问题给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。(你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?)思路运用异或的运算来解决: 异或:相同为0;不同为1交换律:a ^ b ^ a = a ^ a ^ b = b;代码如下:int singleNumber(vector<int>& nums...

2020-03-21 22:50:05 59

转载 stringstream常见用法介绍

最近做题时遇到了一个问题,需要将string类型的数字字符转换成对应的int型数字,需要用到stringsteam,下面是用法介绍: 本文主要介绍 C++ 中 stringstream 类的常...

2020-03-20 21:04:44 353

原创 二叉树最小深度问题

二叉树最小深度问题:和最大深度问题不同,最短深度问题要求到叶子节点的最短深度,如果根节点没有左子树或者没有右子树,那么只能输出左子树或者右子树的最小深度,而不能输出1。所以在最大深度问题的基础上判断根节点的左子树或者右子树是否存在: int run(TreeNode *root) { if(root == nullptr){ return 0; ...

2020-03-20 13:20:36 106

空空如也

空空如也

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

TA关注的人

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