- 博客(60)
- 收藏
- 关注
原创 rust中cargo.toml详细介绍
在 Cargo.toml 文件中,[dependencies] 部分用于管理项目的依赖项。定义依赖项:在这一部分,你可以列出项目所需要的外部 Rust 库(crate)。每个依赖项以库的名称作为键,后面可以跟一些配置信息。版本指定:可以通过不同的方式指定依赖库的版本要求。例如,使用具体的版本号,如 version = “1.2.3”,表示项目依赖于特定版本的库。
2024-10-15 10:59:18
1386
原创 rust属性宏
每个枚举变体在内存中都会占据 32 位的空间,并以无符号整数的形式存储。这里,repr属性被应用于枚举类型MyEnum,然后在变量var的定义中使用了这个带有特定底层表示形式的类型。
2024-09-21 19:13:30
1192
原创 leetcode-48.旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
2023-10-17 17:03:40
399
原创 leetcode-64.最小路径和
0. 如果i = 0, j = 0, dp[i][j] = data[i][j];dp[i][j]表示i,j位置的路径最小值;data[i][j]表示位置i,j的值。
2023-10-15 16:28:21
217
原创 动态规划 -背包问题-详解
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。
2023-10-13 22:59:27
502
原创 leetcode-518. 零钱兑换 II
链接: 零钱兑换II3. 解决方案24. 本文解决方案参考作者:_zhy链接:https://leetcode.cn/problems/coin-change-ii/solutions/872055/liang-liao-4chong-fang-fa-3chong-tlenei-wk3xe/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2023-10-13 15:42:25
157
原创 leetcode-电话号码组合(C CODE)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2023-10-12 22:45:33
490
原创 c++ virtual关键字
在C++中,virtual 是一个关键字,用于实现多态性(polymorphism)和动态绑定(dynamic binding)。它通常与类的成员函数一起使用,以允许在派生类中重写(override)基类的函数,并在运行时根据对象的实际类型调用正确的函数版本。
2023-10-10 15:40:34
953
1
原创 动态规划-杨辉三角(leetcode)
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]
2023-10-08 20:23:25
231
原创 动态规划-爬楼梯(leetcode)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。
2023-10-08 19:42:18
154
原创 牛客或leetcode编程C实现-深度优先探索(敌人数量)
有一个地图,大小是N*M,地图被’#‘分割成大小不同的区域,上下左右’.‘表示同一个区域,’.'表示空地,空地上可能有敌人,敌人使用’E’表示。举例:输入:3 5 2…#EEE.#…###…输出:1说明:2表示敌人个数小于2的区域,由于第二列被#分开了,所以地图有2个区域,其中左边区域敌人个数是1,所以结果输出是1。
2023-09-27 23:16:45
97
原创 linux 同步completion
completion 是 Linux 内核中用于实现同步的数据结构之一,它通常用于等待某个事件的完成或者等待某个操作的结果。struct completion 的主要作用是允许一个或多个线程等待另一个线程发出的信号,以表明某个事件已经发生或某个操作已经完成。
2023-09-20 11:31:49
163
原创 linux 自旋锁spin_lock
spin_lock 主要用于内核开发,用于在内核模块或内核代码中对共享资源进行互斥访问。它通常用于非抢占式内核环境,因为在抢占式内核中,内核线程可以在任何时间点被中断,这可能导致自旋锁在某些情况下陷入死锁。
2023-09-20 11:21:10
274
原创 linux 信号量(semaphore)
在Linux中,信号量是一种用于实现进程间同步和互斥的机制。信号量通常用于控制对共享资源的访问,以确保多个进程之间不会同时访问关键资源,从而避免竞态条件和数据损坏。
2023-09-20 10:42:58
1126
原创 操作系统内存分配算法与实现
操作系统采用了多种内存分配算法和机制,以管理系统的物理内存资源。这些算法和机制的目标是提供高效的内存分配和回收,以满足不同应用程序和任务的需求。
2023-08-25 10:53:34
288
原创 操作系统-posix库
C库(C Standard Library)是一组用于C编程语言的标准函数和宏的集合,旨在为程序员提供常见任务的功能支持。这些函数和宏在C语言标准中定义,并且几乎所有的C编译器都会提供对这些标准库函数的实现。C库提供了许多常见的操作,如字符串处理、内存管理、数学计算等。POSIX(Portable Operating System Interface)是一组操作系统API的标准,旨在提供操作系统功能的可移植性。
2023-08-24 23:52:14
289
原创 rust引用
引用是一种允许程序在不获取所有权的情况下访问值的机制。在Rust中,引用分为可变引用(mutable references)和不可变引用(immutable references)。不同于其他编程语言中的指针,Rust的引用遵循了严格的规则,以确保在编译时防止数据竞争和内存安全问题。Rust的引用系统是其内存安全和并发性能的基石之一。通过引入不可变引用和可变引用,Rust允许程序以更安全的方式操作数据,同时避免了多线程环境下的数据竞争问题。引用的生命周期概念确保了引用的有效性,防止了悬垂引用等问题的发生。
2023-08-24 20:05:38
106
原创 rust ownership(所有权)
Rust是一门现代的系统编程语言,强调安全性和性能。它引入了独特的所有权系统,通过所有权、借用和生命周期来管理内存和资源的使用,以防止内存泄漏、数据竞争等问题。
2023-08-24 20:01:01
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人