自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(224)
  • 问答 (7)
  • 收藏
  • 关注

原创 leetcode hot100 41.第一个缺失的正数 hard

nums.sort():对数组进行排序,时间复杂度为 O(n log n)smallest_missing = 1:假设最小缺失的正整数是 1。总体时间复杂度是 O(n log n),这是由排序操作主导的。排序的时间复杂度是 O(n log n)。遍历数组的时间复杂度是 O(n)。O(1),因为我们只使用常数空间。

2026-01-16 11:16:35 130

原创 leetcode hot100 238.除了自身以外数组的乘积 medium

使用了三个数组 left、right 和 res,它们的大小都为 n。left 和 right 都是 时间复杂度O(n²)res 数组的时间复杂度是 O(n)空间复杂度是 O(n)时间复杂度O(n²)

2026-01-15 21:03:26 126

原创 leetcode hot100 189.轮转数组 medium

如果 k 比 n 大,可以考虑将 k 取模 n ,即 k = k % n,这样可以减少不必要的旋转步骤。没有使用额外的空间,只是在数组操作过程中使用了一个临时变量 temp 来存储当前旋转的元素。k = 0 且 nums 只有一个元素时,使用 nums[:-0] 返回了一个空数组。nums[:-k]:获取数组的前 n-k 个元素。nums[-k:]:获取数组的最后 k 个元素。k = 0 且 nums 只有一个元素时,例如nums = [1], k = 0。时间复杂度:O(k×n)空间复杂度是 O(1)

2026-01-15 20:25:34 243

原创 leetcode hot100 56.合并区间 medium

错误:如果初始化时错误地选择了 res = [] 而不是 res = [intervals[0]],将导致 res 列表为空,无法进行合并操作。原因:如果两个区间合并,应该只更新 res[-1][1],而不是重复添加 intervals[i]。正确做法:合并时应始终更新 res[-1][1],即 res 中最后一个区间的结束位置。排序是合并区间的第一步。错误:在合并时直接更新 res[i][1],而不是 res[-1][1]。正确做法:合并区间时,更新 res[-1][1] 后继续检查下一个区间。

2026-01-15 19:40:49 377

原创 leetcode hot100 53.最大子数组和 动态规划 medium

即每轮迭代 dp[i] 的更新为:dp[i] = max(nums[i], dp[i-1] + nums[i])再与之前的迭代结果比较: maxsum = max(dp[i] ,maxsum)时间复杂度:O(n),其中 n 是数组的长度,因为我们只遍历一遍数组。空间复杂度:O(n),需要存储 dp 数组。

2026-01-15 17:06:38 96

原创 leetcode hot100 76.最小覆盖子串 滑动窗口 hard

【代码】leetcode hot100 76.最小覆盖子串。

2026-01-15 11:20:17 108

原创 leetcode hot100 239.滑动窗口最大值 hard 滑动窗口

我们希望队列中的元素按降序排列,这样队列的最前面(dq[0])始终是当前窗口中的最大值。如果新元素比当前队列的最左端元素大,就将它放在队列最前面。否则,把它放到队列的正确位置,使队列保持从大到小的顺序。

2026-01-14 11:19:17 186

原创 leetcode hot100 560.和为 K 的子数组 medium 前缀和 + 哈希表

增加一个负数可能使得窗口和变得更小,因此不能简单地通过扩大窗口(即增大 right)和收缩窗口(即增大 left)来确保子数组和满足条件。即,如果 sum - k 在哈希表中, 那么和为k的子数组存在。滑动窗口的关键假设是:当滑动窗口时,和应该是递增或递减的。,到当前位置的和为 sum。,到当前位置的和为 k,但当数组中包含负数时。

2026-01-11 21:09:47 173

原创 leetcode hot100 438. 找到字符串中所有字母异位词 滑动窗口 medium

O(n * k log k),其中 n 是字符串 s 的长度,k 是字符串 p 的长度。:O(n + k),其中 n 是字符串 s 的长度,k 是字符串 p 的长度。窗口的大小会始终保持为 p 的长度,保证每次比较的都是相同长度的子串。排序的时间复杂度是 O(k log k),其中 k 是 p 的长度。如果字符串 p 较大(即 k 较大),排序操作的代价会比较高。其中 n 是字符串 s 的长度,k 是字符串 p 的长度。每次滑动窗口时需要对窗口进行排序。

2026-01-11 19:40:50 182

原创 leetcode hot100 3.无重复字符的最长子串 medium 滑动窗口(双指针)

while s[right] in s[left:right] 的操作虽然看起来是 O(n) 的操作(因为它在 left:right 的子串上查找),但由于每个字符的 left 和 right 只移动一次,in 操作的时间成本不会累积成 O(n²)。除了输入字符串 s 外,程序只使用了两个额外的变量:left 和 max_len,它们都占用常量空间。如果 s[right] 已经在窗口里,缩小 left(直到s[right] 不在窗口里)如果 s[right] 没出现过,扩大窗口,更新最大长度。

2026-01-11 18:06:55 174

原创 leetcode hot100 42 接雨水 hard 双指针

最后,从左往右遍历数组,每个位置当前的水=min(left_max[i], right_max[i]) - height[i]先从左往右遍历一遍数组,求出每个位置左边最大的高度。再从右往左遍历一遍数组,求出每个位置右边最大的高度。

2026-01-11 17:15:56 216

原创 leetcode hot100 15. 三数之和 medium

如果我们直接移动指针,左指针 left 会指向下一个 0,右指针 right 会指向下一个 1,这时候我们会重复添加 [-1, 0, 1] 这个三元组。总的时间复杂度为 O(n²) +O(n log n) = O(max(n log n, n²)) = O(n²)双指针扫描是 O(n)。对于每个 i,双指针的扫描是 O(n) 的操作,而外层循环遍历了 n 个元素。:因为数组是排过序的,可能会遇到值相同的元素。假设数组已经排序:[-1, -1, 0, 1, 1]我们找到的三元组是 [-1, 0, 1]。

2026-01-10 19:47:44 381

原创 leetcode hot100 11.盛最多水的容器 medium 双指针

矮高已被丢弃,矩形高度变为height[j] , height[j] > 原来的height[i] ,底宽减小,最大水量有机会变大。,矮高已被丢弃,矩形高度变为K ,K > 原来的height[i] ,底宽减小,最大水量有机会变大。,矮高已被丢弃,矩形高度变为K ,K > 原来的height[i] ,底宽减小,最大水量有机会变大。,矩形高度仍然为height[i],底宽减小,最大水量比原来小。,矩形高度仍然为height[i],底宽减小,最大水量比原来小。如果移动高的那一边,矮高被保留。

2026-01-09 21:10:39 215

原创 leeetcode hot100 283移动零 双指针 easy

✅ 本质上算“双指针”(只是“写指针 + 读指针”的形式)这是原地(in-place),修改发生在 nums 本身。时间复杂度是 O(n)空间复杂度 O(1)

2026-01-09 20:23:18 204

原创 leetcode hot100 最长连续子序列 哈希表 medium

时间总复杂度 = 排序 + 遍历。O(nlog⁡n) + O(n) = O(max(n log n, n)) = O(n log n )遍历每个数字,只从“序列起点”开始向右查找连续数字,这样每个数字最多访问一次 → O(n)

2026-01-08 21:39:40 219

原创 虚拟机与主机 共享网络

cmd。

2024-10-22 18:31:13 309

原创 Linux configure.ac:51: error: possibly undefined macro: AC_MSG_ERROR

【代码】Linux configure.ac:51: error: possibly undefined macro: AC_MSG_ERROR。

2024-08-26 14:33:41 625 1

原创 开发板有线连主机,主机无线上网,开发板上网

以太网4连接开发板wlan设置共享vmwave需要禁用(否则占用共享地址192.168.137.1)

2024-02-05 18:47:42 375

原创 低功耗 电源管理 SCMI接口

SCMI overview:SCMI 协议:

2023-12-21 19:03:46 1257

原创 低功耗 电源管理 ACPI协议

• G状态(Global System State)• S状态(Sleep state)• C状态(CPU power state)• P状态(CPU Performance state)• D状态(Device state)• T状态(CPU Throttling state)

2023-11-21 15:59:38 2140

原创 ARM 低功耗架构

当遇到Linux没有权限的事情的时候(eg: 当Linux想要关机或者休眠的时候,这涉及到整个系统电源状态的变化,为了安全性Linux内核没有权利直接执行,需要陷入到EL3等级去执行),需要给SCP打报告,SCP审批后去执行。PSCI是工作在non secure EL1(linux内核)/EL2 hypervisor和EL3(bl31)之间的一组电源管理接口,PSCI在EL3实现。PSCI是ARM安全和非安全世界之间的接口,提供了一种发出电源管理请求的方法,在SPF和可信操作系统之间进行通信。

2023-11-21 15:40:13 1857

原创 linux os cpufreq 调频

好像还可以,但我没有/etc/powersave/,不行。查看对应目录下,没有cpufreq。查看可以用的 CPUfreq 模块。可能是关闭CPU频率调整,可能是调频模块没有启动,

2023-11-09 17:06:19 555

原创 amd Ubuntu opencl 安装

安装amd显卡驱动,下载地址:安装成功之后可输入 glxinfo | grep rendering,显示 yes 则显卡驱动安装成功。安装 openCL 头文件OpenCl opencl SDK 下载地址:工具查看显卡对 openCL 的支持情况clinfo重启进入 /opt/AMDAPPSDK-2.9-1/samples/opencl/bin/x86_64 下有很多 demo,可以点击尝试运行,比如运行 SimpleGL 会有类似正弦波的界面出来。

2023-11-08 10:46:24 2620 4

原创 unixbench cpu 性能测试

测试项。

2023-10-26 15:17:44 423

原创 linux git gvim 操作

【代码】linux git gvim 操作。

2023-08-25 16:28:48 420

原创 评价指标计算

macro avg 是计算这些指标的宏平均值。不考虑类别样本数量的差异,将每个类别的指标求和后再除以类别总数N,得到各指标的平均值。准确率(Precision):记为P_i,表示被正确预测为类别i的样本数占所有被预测为类别i的样本数的比例。召回率(Recall):记为R_i,表示被正确预测为类别i的样本数占真实类别i的样本数的比例。F1-score:记为F1_i,是准确率和召回率的加权调和平均,用于综合考虑准确率和召回率。micro avg-R = (总体TP) / (总体TP + 总体FN)

2023-05-26 19:29:34 1583

原创 python dataframe 统计检查处理

【代码】python dataframe 统计检查处理。

2023-05-04 14:10:21 300

原创 python 统计画图

【代码】python 统计画图。

2023-05-04 13:52:29 286

原创 python Concatenate合并两个CNN模型

【代码】python Concatenate合并两个CNN模型。

2023-04-26 15:45:59 1025

原创 python 插值处理一维数据 interpolate

插值处理一维数据 interpolate

2022-12-15 19:10:27 1328

原创 python 处理numpy nan值

numpy nam值处理

2022-12-04 19:47:56 837

原创 UVM sequence 3种启动方式

在build_phase中将某个sequence配置成某个sequencer的动态运行的phase中(如main_phase)的default_sequence, 那么在仿真执行到main_phase的时候,squencer的default_sequence就会启动。第二类:uvm_do_on类。第一类:uvm_do类。

2022-09-19 19:04:43 4332 1

原创 建立时间和保持时间

setup time是针对Capture edge来说,待传输数据不能来太晚hold time是针对Capture edge来说,新数据不能来太早,以确保待传输数据保持一段时间当前待传输的数据,相对于Capture edge来说,必须早来(setup time)晚走(hold time)

2022-09-18 16:03:16 461

原创 system verilog rand randc constraint randomize

关键词:dist 用来产生随机数值的权重分布。操作符 := 和 :/

2022-09-16 12:40:09 1344

原创 system verilog 处理子进程(关闭/等待/跳转)

如何关闭 fork 里某个子进程?disable语句可以用在task或者块中去终止指定的task或块,包括终止disable语句所在的块或者task。disable也可以用在function中去终止task或者块,但不能用于终止function。当在function中用dsiable语句终止了一个task或者块,而这个task或者块刚好又是这个function的caller,这种情况的结果是未知的。方法:给每个begin end块起个名字,然后就可以在该begin end中关闭该子进程。

2022-09-15 15:34:54 3297

原创 system verilog 数据类型

Verilog 的数据类型主要是线网和变量,即 wire, reg, integer,都是四值逻辑(0、1、x、z)

2022-09-11 19:56:18 864

原创 system verilog randomize_with{ } 重新定义约束

/子类继承父类,会继承属性和方法,所以父类的约束也继承了 constraint c_xy //子类如果想定义一个新约束覆盖父类,则需要定义一个同名约束 {x == 0;y == 0;//在子类约束的基础上随机化 $ display("x = %d" , p . x);

2022-09-11 19:33:42 1161

原创 UVM driver和sequencer握手机制 get_next_item() 和 get() and put()

UVM driver和sequencer握手机制 get_next_item() 和 get() and put()

2022-09-10 21:01:11 4457

原创 UVM TLM FIFO通信 示例

component A 每隔 50ns 往 tlm_fifo 写入一个 transaction,component B 每隔 100ns 从 tlm_fifo 读出一个 transaction。

2022-09-08 19:24:48 589

原创 system verilog 句柄 ref参数传递 C语言指针

systemverilog 中的变量可以分为两种,一种普通变量类型,一种是句柄变量类型。output :报null point 错误。输出结果是: 3 2。

2022-09-07 16:05:10 1905

空空如也

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

TA关注的人

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