- 博客(108)
- 收藏
- 关注
原创 转置/旋转矩阵
本文介绍了矩阵转置和旋转的实现方法。对于转置矩阵,通过行列交换实现,分别展示了C++ STL容器和C语言中二维数组、一维数组指针、指针数组三种实现方式。对于旋转90度操作,提出了原地算法:顺时针旋转通过"转置+行反转"实现,逆时针旋转则采用"行反转+转置"的方式。这两种方法均能在O(n²)时间复杂度和O(1)空间复杂度下完成操作,适合处理大规模矩阵。文中通过图示和代码示例详细说明了实现步骤和原理。
2025-10-27 10:04:07
898
原创 215.数组中的第K个最大元素
文章摘要:本文探讨了查找数组中第K大元素的三种方法。1)排序法:直接排序后取第k-1位元素,时间复杂度O(N*logN);2)大根堆法:建堆后删除k-1次,时间复杂度O(N+(k-1)logN),适合k较小情况;3)小根堆法:维护k个元素的小堆,时间复杂度O(K+(N-K)logK),适合k较大情况。三种方法各有适用场景,需根据k值选择最优解。
2025-10-27 09:31:12
481
原创 python基础语法--string
它将可迭代对象中的每个元素都转换为字符串,并使用指定的分隔符将它们连接起来,返回一个新的字符串。,并将字符串分割成三部分。在这个例子中,我们首先创建了一个转换表,将字母 'a' 替换为 '1',字母 'b' 替换为 '2',字母 'c' 替换为 '3'。方法同时移除字符串的左侧和右侧的指定字符集合中的字符,直到遇到第一个非指定字符为止。方法从字符串的左侧开始移除指定字符集合中的字符,直到遇到第一个非指定字符为止。方法从字符串的右侧开始移除指定字符集合中的字符,直到遇到第一个非指定字符为止。
2025-10-27 09:06:09
859
原创 Ubuntu 22.04 & Windows11 双系统安装
本文主要介绍了如何在Windows11中安装Ubuntu22.04操作系统,也简单介绍了如何安装CentOS。在最后也给出了一些关于操作系统的知识……
2025-07-14 09:06:20
1279
原创 VScode连接CentOS 7.6虚拟机
本文主要介绍如何使用VScode连接CentOS 7.6虚拟机,并在CentOS7.6中安装高版本编译器、CMake等开发工具~
2025-04-03 15:18:37
1700
原创 Ubuntu 20.04 卸载和安装 MySQL8.0
该文详细介绍了Ubuntu 20.04 卸载和安装 MySQL8.0的过程,通过一步步的介绍,帮助你完成MySQL的安装~
2024-12-20 21:26:00
2443
原创 Java基础--内部类和异常
异常(Exception)是在程序运行过程中出现的、打断正常程序流程的意外情况。例如,试图打开一个不存在的文件、进行除法运算时除数为0、数组越界访问等,这些情况都会导致异常的产生。除了使用Java自带的异常类,开发者还可以根据具体的业务需求自定义异常类,一般是继承自Exception类(如果是受检异常)或者类(如果是非受检异常)。throw new InvalidGradeException("成绩输入无效,成绩应在0到100之间");
2024-11-25 16:59:54
642
原创 Java基础--入门
输入类名后,创建完成。mainsout更改SDKFile -> Project Structure -> 左侧SDKsCtrl + N查看源码。如果没有搜索到,看一下是不是图中右侧是否选中呼出窗口,查找特定方法。
2024-11-25 16:57:38
1010
原创 Java基础--习题集(选择题)
Collection接口是所有集合类的顶级接口之一(另一个重要的顶级接口是Map,用于存储键值对形式的数据),它为各种具体的集合实现类(如ArrayList、LinkedList、HashSet等)提供了统一的操作规范,使得开发者可以用一致的方式来处理不同类型的集合,而不用关心具体的集合实现细节。在Java的内存模型中,数组元素在内存中是按照连续的顺序存储的,这样便于通过索引快速地访问数组中的各个元素,只需根据数组的起始地址以及元素类型的大小和索引值,就能快速定位到对应的元素位置,所以该描述。
2024-11-25 16:56:47
1408
原创 Java基础--类和对象
定义与用途抽象类是一个不能被实例化的类,它通常包含一些抽象方法(没有方法体的方法)和一些具体方法(有方法体的方法)。抽象类主要用于表示一种通用概念,并为子类提供通用的属性和方法。语法特点使用abstract关键字修饰类和方法。抽象类可以包含具体方法、抽象方法、成员变量、构造器、初始化块、静态方法、内部类等。一个类继承抽象类时,必须实现其所有未实现的抽象方法,除非这个子类也是抽象类。示例// 构造器// 抽象方法,没有方法体// 具体方法// 实现抽象方法@Override。
2024-11-25 16:55:02
1543
原创 Java基础--输入输出
在Java中,输入输出流用于实现程序与外部数据源(如文件、网络连接等)之间的数据传输。最基本的流类有字节流(输入流)和(输出流),以及字符流Reader(输入字符流)和Writer(输出字符流)。字节流以字节为单位处理数据,适用于各种二进制数据的读写;字符流则以字符为单位,更适合处理文本数据,尤其是涉及多字节字符(如汉字)的情况。
2024-11-25 16:54:41
1223
原创 C++--特殊类的设计
本文详细介绍了C++中关于特殊类的设计。分别从以下几个方面进行介绍,如:为什么要设计该类?常见的哪些类会被设计成这样?如何实现该类(多种方案)?还介绍了单例模式,用饿汉模式和懒汉模式进行实现,还列举了一些它们各自的优缺点。希望对你学习如何实现一些特殊类有所帮助……
2024-10-09 18:05:26
1053
原创 C++--包装器std::function和绑定std::bind
本文详细介绍了C++中关于包装器std::function和绑定std::bind的使用。对于包装器std::function,分别从以下几个方面进行介绍:什么是std::function?如何使用?列举了常见的应用:回调函数、事件处理、作为函数参数和返回值、如何包装类成员函数……对于绑定std::bind,介绍了:什么是std::function?如何使用?列举了几个常见的应用:绑定普通函数、lambda表达式、成员函数。希望对你学习包装器std::function和绑定std::bind有所帮助……
2024-10-09 17:57:41
1828
原创 C++11--默认成员函数控制 && 模板的可变参数
本文详细介绍了C++11中关于默认成员函数控制和模板的可变参数。默认成员函数控制中先复习了一下几个默认成员函数以及它们的作用,之后介绍如何使用default和delete控制类默认成员函数的行为:生成还是删除。模板的可变参数中,先来复习一下C语言中如何实现的可变参数,然后再介绍模板的可变参数。此外还详细介绍了模板的可变参数的应用——emplace_back:介绍了其在哪些场景下才能提高效率、如何实现。最后介绍了模板的可变参数和统一初始化列表同时应用的一个易错点。希望对你学习C++11语法有所帮助……
2024-10-08 17:40:48
1463
2
原创 C++11--列表初始化和声明
本文详细介绍了C++11中关于初始化列表和声明。初始化列表中主要介绍各种类型如何使用{ }进行初始化,以及底层是如何做到的(也就是使用std::initializer_list)。声明中,主要介绍了几个关键字,如auto、decltype、nullptr、using和范围for的使用。此外还介绍了STL中的一些变化:STL新增容器、字符串转换函数、容器中新增的一些方法。最后介绍了在面试中,从哪些方面阐述C++11中的优缺点。希望对你学习C++11语法有所帮助……
2024-10-08 17:30:04
1094
原创 C++11--智能指针
本文详细介绍了C++智能指针,包括以下几点:为什么需要智能指针?什么是内存泄漏?智能指针使用的RAII思想是什么?标准库提供了哪些智能指针(auto_ptr、unique_ptr、shared_ptr和weak_ptr)?如何使用这些智能指针?其大致原理分别是什么?删除器如何使用和设计?为什么要使用make_shared?希望对你学习C++智能指针有一定帮助ヾ(≧▽≦*)o
2024-10-03 17:21:49
1486
原创 python基础语法--顺序结构
本文主要介绍了python中的顺序结构:if语句、break、continue和循环使用for、while。还有一些练习题目,帮助理解这些语句的使用和应用。
2024-09-29 10:28:24
1889
原创 C++11 -- lambda表达式
本文对C++11中的lambda表达式进行讲解,其中内容包括:lambda表达式是用来解决什么问题的?如何使用?简单理解底层……
2024-09-26 21:30:32
1181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅