自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 求解ab串

【问题描述】给定一个由字符'a'和字符'b'组成的字符串,可以删除若干字符,使得剩下来的字符串满足前后段为a,中间段为b(aaa....aaabbbb.....bbbbaaa.....aaa),区段可以没有字符(ba,ab,b,aa都是合法的),求最长剩下字符串的长度。【输入形式】输入为一行一个长度不超过5000的非空字符串,字符串仅由字符'a'和字符'b'组成。【输出形式】输出为一个整数,表示符合要求的最长剩下字符串长度【样例输入1】abba【样例输出1】4【样例输入2】bab【样例输出2】

2024-05-05 15:32:05 147

原创 旋转对称(模拟题)

【问题描述】将一个圆盘的圆周用等距的个单位(点)划分,点的编号为顺时针从1~,即点和+1 是相邻点,和 1也是相邻点。圆盘上有条线段,它们的端点都在前面的个点上。那么,给定一个这样的圆盘后,怎样确定这个圆盘是否为旋转对称的?也就是说,选定一个正整数,绕圆心顺时针旋转个单位后,新的图像是否跟原有的形状是相同的?【输入形式】输入的第一行为整数, 表示测试数据的组数,接下来是组数据。每组数据的第一行包含两个正整数和(2≤≤ 100000),表示圆周上点的个数以及线段数。接下来的行,第行为两个整数和。

2024-05-05 15:28:42 326

原创 内存管理(模拟题)

【问题描述】离第一个操作系统HNU-OS发布已经没有多少时间了,但它的一些组件还没有完成,内存管理器就是其中之一。根据开发人员的计划,在第一个版本中,内存管理器将非常简单和直观。它将支持三个操作:alloc n —— 分配n个字节内存,返回已分配块的正整数标识符x(x初始值为0,每次分配增长1)erase x —— 删除标识符x所在的块defragment —— 整理空余内存碎片,将所有块尽量靠近内存的开始位置,并保持各自的顺序。

2024-05-05 15:20:47 411

原创 求解单峰数组

【问题描述】一个整数数组被称为单峰数组,当第一部分为严格递增序列中间部分为常数序列最后部分为严格递减序列第一部分和最后部分都可以缺失例如,下列3个数组的单峰的:[5, 7, 11, 11, 2, 1]、[4, 4, 2]、[7],但是以下3个数组不是单峰的:[5, 5, 6, 6, 1]、[1, 2, 1, 2]、[4, 5, 5, 6]。编写程序判断一个数组是否为单峰的。【输入形式】输入的第一行为一个整数T,表示测试用例的个数。

2024-05-05 15:17:16 138

原创 合法的括号串

【问题描述】一个合法的括号串,是指只包含括号的串,如果满足如下条件:(1)<> () [] {} 这四对括号是合法的;(2)如果r是合法括号串,则<r> (r) [r] {r}也是;(3)如果r,s是合法括号串,则rs也是;所以<<>> , [<>{}(())],[({<>})]是合法的括号串,而)(,[( ])就不是。【输入形式】输入第一行正整数t (10 ≤ n ≤ 100),表示有多少组测试数据。后面有t行,每行一个只包含8种括号符号的括号串。

2024-05-05 15:14:16 139

原创 计算校验码

校验码的设计是为了使得原数N加上这个校验位后的新数能被B-1整除。这告诉我们需要找到一个合适的校验码,加到N的末尾,使得整体数值模B-1的结果为0。

2024-05-05 15:11:05 89

原创 缺席考试的是谁?

【问题描述】程序设计考试结束了,传来个不好的消息:有一个学生没参加考试!需要尽快知道缺席考试的人是谁,以便尽快做出处理。糟糕的是,尽管有签到表,但由于人数较多,签到情况比较混乱:有的签到表签在一张白纸上,有的虽然签在名册上,但并不是签在自己姓名旁,更有学生签到了别的签到表上……现在只能根据这签到表和名册上的2n-1个姓名(n个学生姓名在名册上,n-1个学生签到姓名),来找到缺席考试的人是谁,而且这2n-1个姓名没有什么顺序。唯一一个有利的条件是所有参加考试的人都签了名,且只签一次,签名也都正确无误。

2024-05-05 15:06:37 215

原创 E-mail地址

【问题描述】妹儿公司的一个主要业务是提供电子邮件服务,每天都有数以万计的用户在使用该平台收发电子邮件e-mail。然而不幸的是,最近公司的邮件服务器遭受到了网络攻击,几乎所有的邮件内容都受到了破坏,每个邮件都只留下了一个长长的字符串。恢复所有邮件是不可能完成的任务,但似乎从这串留下的字符串中还可以解析出一些可能的e-mail地址,这样公司可以通过向这些解析出的e-mail地址发送邮件以减少用户的损失。一个有效的e-mail地址的形式符合以下原则:1、邮件开始部分必须是字母、数字和‘

2024-05-05 14:51:24 252

原创 岁月留痕(连续子数组)

【问题描述】给定n(1 ≤n≤ 24)个正整数,请判断这n个数是否是连续n个月份的天数,这些月份可以跨年度。【输入形式】输入第一行为一个整数n,第二行为n个正整数()(28 ≤ai≤ 31)。【输出形式】输出Yes或No。【样例输入1】4【样例输出1】Yes【样例输入2】230 30【样例输出2】No【样例输入3】5【样例输出3】Yes【样例说明】在第一个样例中,连续4个数是7、8、9、10月份的天数。

2024-05-05 14:48:32 128

原创 最大连续和

【问题描述】对于一个具有个元素的整型数组,求具有最大连续和的子数组(最少具有一个元素)。【输入形式】输入的第一行为一个整数,接下来的一行为个整数,表示数组的元素。【输出形式】输出具有最大连续和的子数组的起始编号和结束编号(数组编号为0~n-1)。【样例输入】8【样例输出】2 5。

2024-05-05 14:43:12 64

原创 最少钱币数(凑硬币)

while(true)下,从命令行键入M钱数值,M = 0结束。从命令行键入币种数量K,以及K个数值用数组coins表示。时所需的最小硬币数量,初始值设为一个较大的数(2001)。,返回字符串 "Impossible";设为 0,表示找零金额为 0 时需要的硬币数量为 0。中的较小值,表示在使用当前硬币时找零金额为。仍然为初始值 2001,则说明无法凑出金额。创建整型数组dp[],用于存储找零金额为。需要的最小硬币数量。需要的最小硬币数量。

2024-05-05 14:35:15 65

原创 二叉树遍历,从前序、中序到后序

每组测试数据第二行是二叉树的前序遍历的结果,是一个长度为n的字符串,每个节点由一个字符表示,字符是大小写英文字母及10个数字,不同的节点用不同的字符表示,也即无论前序遍历和中序遍历的字符串中没有重复的字符。需要你编写程序解决的问题是:已知一个二叉树的前序遍历和中序遍历的结果,给出该二叉树的后序遍历的结果。对于每组测试数据,输出一行,是一个长度为n的字符串,表示二叉树后序遍历的结果。每组测试数据第二行是二叉树的中序遍历的结果,也是一个长度为n的字符串。前序遍历:根结点 ---> 左子树 ---> 右子树。

2024-05-05 14:27:19 200

原创 动物园的栅栏

【问题描述】小芳和她的朋友们沿着高度为的动物园栅栏一起行走,他们不想惊扰到动物们,因此他们每个人的高度都不能超过,如果他们中有人身高超过,则他必须弯下腰来行走。如果将正常行走的人的宽度视为1的话,那么当他弯下腰的时候宽度会变为2。小芳的朋友们想一边走一边聊天,他们希望尽量走成一排,但是道路宽度是有限的,因此可能要分成几排来行走。给出朋友们的人数(包括小芳)、栅栏的高度以及道路的宽度,以及所有个朋友的身高,请输出最少能走成几排?【输入形式】输出的第一行为三个整数,接下来的一行个整数,分别表示。

2024-05-05 14:21:44 40

原创 闰年的数目

【问题描述】闰年是公历中的名词。普通年(不能被100整除的年份)能被4整除的为。(如2004年就是,1999年不是世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。计算两个年份之间有多少闰年。比如2000年到2004年之间有2个闰年。而2000年到2300年之间有73个闰年。【输入形式】

2024-05-05 14:18:56 236

原创 求解亲和数

【问题描述】古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身 的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284。而284的所有真约数为1、2、4、71、142,加起来恰好为220。人 们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数 之和,则这两个数就是亲和数。220和284是人类最早发现,又是最小的一对亲和数。

2024-05-05 14:12:19 97

原创 本地项目发布到Github

1、在 GitHub 上创建一个新的仓库。在仓库页面上点击 “New” 按钮,输入仓库名称和描述,选择公开或私有,然后点击 “Create repository”。2、在本地计算机上创建一个新的 Git 仓库。替换为你自己的 GitHub 仓库 URL。另外,如果你的项目中包含敏感信息,如密码等,需要在上传前将其删除或修改。注意:在执行以上命令时,需要将。

2023-06-05 08:07:49 270

原创 MyBatis 学习笔记

MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。MyBatis 本是Apache的一个开源项目ibatis, 2010年这个项目由Apache 迁移到了Google code,并且改名为MyBatis。2013年11月迁移到。

2023-06-04 20:00:24 1091

原创 Spring5 学习笔记

前置知识:掌握Java基础知识(特别是反射)掌握Java注解掌握XML掌握MavenSpring5学习笔记1、Spring概述1.1、简介1.2、优点1.3、组成1.4、拓展2、IOC理论推导2.1、分析实现2.2、IOC本质3、HelloSpring3.1、导入jar包3.2、编写代码3.3、思考3.4、修改案例一4、IOC创建对象的方式4.1、使用无参构造创建对象(默认)4.2、使用有参构造创建对象5、Spring配置5.1、别名5.2、Bean的配置5.3、import6、依赖注入6.1

2023-05-30 15:56:23 832

原创 SpringMVC 学习笔记

SpringMVC 学习笔记1、回顾MVC1.1、什么是MVC1.2、Model1时代1.3、Model2时代1.4、回顾Servlet2、什么是SpringMVC2.1、概述2.2、中心控制器2.3、SpringMVC执行原理 【重要】3、HelloSpring3.1、配置版3.2、注解版3.3、小结4、Controller 及 RestFul4.1、Controller 控制器4.2、实现Controller接口4.3、使用注解@Controller4.4、RequestMapping4.5、RestF

2023-05-29 19:07:15 648

原创 整合SSM(Spring + SpringMVC + Mybatis)

7、整合SSM7.1、环境要求7.2、数据库环境7.3、基本环境搭建7.4、Mybatis层编写7.5、Spring层7.6、SpringMVC层7.7、小结及展望7.1、环境要求环境:IDEAMySQL 5.7.19Tomcat 9Maven 3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;最简单的项目:步骤:新建数据库,建表新建Maven项目,添加web的支持导入相关的pom依赖

2023-05-29 18:38:44 704

原创 本地项目发布到Github

在 GitHub 上创建一个新的仓库。在仓库页面上点击 “New” 按钮,输入仓库名称和描述,选择公开或私有,然后点击 “Create repository”。在本地计算机上创建一个新的 Git 仓库。替换为你自己的 GitHub 仓库 URL。另外,如果你的项目中包含敏感信息,如密码等,需要在上传前将其删除或修改。注意:在执行以上命令时,需要将。

2023-05-27 09:54:36 136

原创 Ubuntu22.04安装MySQL8

在apt安装的MySQL的配置文件里,设置了绑定127.0.0.1地址,需要在配置文件。​ 现在,您已经成功在 Ubuntu 22.04 上安装了 MySQL 8。另外,如果是云服务器,需要在云服务器控制端开启3306端口。安装过程中会提示设置 MySQL root 用户的密码。安装MySQL需要在root用户下。中注释掉该行,在操作之前,需要停止。

2023-05-25 21:01:50 1785

原创 C++运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

2023-04-04 13:07:38 491 1

原创 C++ auto类型用法总结

auto是c++程序设计语言的关键字。用于两种情况(1)声明变量时根据初始化表达式自动推断该变量的类型(2)声明函数时函数返回值的占位符auto可以在声明变量时根据变量初始值的类型自动为此变量选择匹配的类型。举例:对于值x=1;既可以声明: int x=1 或 long x=1,也可以直接声明 auto x=1。

2023-04-04 13:05:42 870

原创 C++ 结构体(struct)的使用

结构体可以定义除了自身以外的任何数据类型。//一些基本的数据结构或自定义的数据类型 //基本格式:数据类型 变量名称 };在定义结构体类型名时,一起定义结构体变量、结构体数组int id;按照基本数据类型定义强调:结构体不能定义自己本身,但可以定义自身类型的指针变量。node n;//不能定义node型变量 node * next;//可以定义node*型指针变量 };

2023-04-02 17:23:22 3442

原创 C++ STL:stack的常见用法

在使用前,需要先添加头文件。stack容器内元素的访问:由于先进后出的数据结构,在STL的stack只能通过top()来访问栈顶元素。st . top();

2023-04-02 17:22:57 399

原创 C++ STL:queue的常见用法

使用queue,需要先添加头文件//typename可以是任意基本数据类型或容器。

2023-04-02 17:18:27 425

原创 59. 螺旋矩阵II

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

2023-04-02 17:13:06 48

原创 209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。

2023-04-02 17:11:27 349

原创 27. 移除元素

给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。

2023-04-02 17:10:40 222

原创 977. 有序数组的平方

给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]示例 2: 输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]

2023-04-02 17:09:38 263

原创 704. 二分查找

本篇根据两种常见的区间定义,给出了两种二分法的写法,每一个边界为什么这么处理,都根据区间的定义做了详细介绍。理解区间的定义在循环中始终坚持根据查找区间的定义来做边界处理。区间的定义就是不变量,那么在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。

2023-04-02 17:06:52 345

原创 206. 反转链表

给你单链表的头节点 ,请你反转链表,并返回反转后的链表。示例1:示例2:示例3:提示:进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

2023-04-02 17:03:27 415

原创 160. 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0listA - 第一个链表listB - 第二个链表skipA - 在 listA 中(从头

2023-04-02 17:00:54 236

原创 141. 环形链表

给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例1:示例2:示例3:提示:进阶:你能用 (即,常量)内存解决此问题吗?逻辑上:遍历所有节点,每次遍历到一个节点,判断该节点是否

2023-03-23 19:44:25 148

原创 121. 买卖股票的最佳时机

总结一次遍历方法给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。解决方案:找出给定数组中两个数字之间的最大差值(即,最大利润)。此外,第二个数字(卖出价格)必须大于第一个数字(买入价格)。形式上,对于每组 i 和 j (其中 j>i ),找出ma。

2023-03-22 17:36:50 221

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

总结异或位运算方法给你一个非空整数 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

2023-03-22 17:32:52 192

原创 104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例1:给定二叉树 ,返回它的最大深度 3 。左子树和右子树的最大深度lll 和rrr,那么该二叉树的最大深度即为max(l,r)+1max(l,r)+1max(l,r)+1深度优先搜索:复杂度分析时间复杂度:O(n)O(n)O(n),其中n为二叉树节点的个数。每个节点在递归中只被遍历一次。空间复杂度:O(height)O(height)O(height),其中 h

2023-03-21 10:33:36 218

原创 101. 对称二叉树

总结求解左右子树互为镜像给你一个二叉树的根节点root, 检查它是否轴对称。[1, 1000]

2023-03-21 09:58:22 85

原创 94. 二叉树的中序遍历

总结给定一个二叉树的根节点root,返回它的遍历。[0, 100]

2023-03-20 16:11:43 189

空空如也

空空如也

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

TA关注的人

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