自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字符串-翻转字符串里的单词

151. 反转字符串中的单词给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

2024-05-11 15:43:35 229

原创 字符串-反转字符串II

541. 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

2024-05-10 16:40:01 261

原创 哈希表-四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0

2024-04-11 14:38:11 337

原创 哈希表-三数之和

不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。

2024-04-10 19:23:38 275

原创 哈希表-四数相加II

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2024-04-09 18:52:27 402

原创 哈希表-两数之和

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。

2024-04-05 12:47:09 338

原创 哈希表-两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。

2024-03-28 00:35:34 309

原创 哈希表-有效的字母异位词

那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。暴力的解法,两层for循环,同时还要记录字符是否重复出现,很明显时间复杂度是 O(n^2)。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。再遍历 字符串s的时候,

2024-03-27 20:42:01 346

原创 链表-环形链表II

为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。这道题目,不仅考察对链表的操作,而且还需要一些数学运算。

2024-03-27 19:06:07 256

原创 字符串-反转字符串

对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]

2024-03-27 17:45:30 294

原创 两两交换链表中的节点

这道题目正常模拟就可以了。建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

2024-03-27 16:59:38 297

原创 C语言实现——删除链表倒数第N个节点

双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2], n = 1 输出:[1]

2024-03-21 14:08:50 255

原创 C语言实现——反转链表

实现对单链表的反转,有三种方法,分别为:双指针法,递归法,头插法。其中,头插法是对当前链表中的所有元素再进行一次头插法,实现链表的反转。反转一个单链表,要求不能申请额外的内存空间。

2024-01-04 15:04:34 532

原创 设计链表(C语言实现)

链表是非常基础的数据结构,这里选择使用带有虚拟头结点的链表。设计一个链表类,实现六个接口。

2024-01-03 19:06:33 400

原创 移除链表元素

链表删除元素的原理就是,找到要删除元素的节点,让删除元素的前一个结点的next指针指向删除结点next指针指向的元素。有两种删除方法,第一种是直接使用原来的链表进行删除,但是需要处理头结点符合删除条件时候的情况。第二种是使用一个虚拟头结点,最后要把虚拟头结点释放掉。输入:[1→4→2→4],val = 4。在链表中删除指定值的元素。

2023-12-22 18:13:01 385

原创 螺旋矩阵II

这道题并不设计具体的算法,就是模拟螺旋打印的过程,考察对代码的掌控能力。给出一个正整数n,从外向内的螺旋顺序打印 1 到 n^2 的所有数值。

2023-12-22 15:58:36 398

原创 长度最小的子数组

在一个正整数数组中找到最小长度的连续子数组,使子数组的元素之和大于或者等于s。返回满足条件的连续子数组的最小长度,如果没有找到则返回0。求解长度最小的子数组有两种方法,第一种是暴力解法,使用两个for循环;第二种方法是使用滑动窗口法(双指针法)。输入:s = 12,arr = [4,6,2,4,9,8,7]。

2023-12-20 12:41:07 381

原创 C语言实现——移除数组元素

原地移除数组中所有等于val的元素,要求不能使用额外的辅助空间,即空间复杂度为O(1)。返回移除后新数组的size。实现数组元素删除有两种方法,第一种是暴力解法,使用两个for循环;第二种方法是使用双指针法(快慢指针法)。原地移除元素4之后的数组为[5,6],数组长度为2。数组为[4,5,6,4,4,4]。

2023-12-19 15:00:48 794

原创 C语言实现——二分查找

【代码】C语言实现——二分查找。

2023-12-18 19:16:19 424

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

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。

2023-04-12 10:50:34 155

原创 LeetCode 977. 有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。链接:https://leetcode.cn/problems/squares-of-a-sorted-array。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]输出:[4,9,9,49,121]

2023-04-12 10:34:24 133

原创 LeetCode 27. 移除元素

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]

2023-04-12 10:19:38 123

原创 LeetCode 704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。链接:https://leetcode.cn/problems/binary-search。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。

2023-04-12 10:08:03 87

原创 0-1 背包 (回溯法)

n=5, c=10, w={2, 2, 6, 5, 4}, v(p)={6, 3, 5, 4, 6}的0-1背包问题的最优解和最优值。

2023-03-09 15:36:05 158 1

原创 0-1背包(动态规划 & 贪心算法)

如果 背包重量为9,现在有3个物品,其重量、价值、和性价比分别为求解背包能够装入的最大价值。

2023-03-08 13:06:54 823

原创 1004: 0-1背包问题(动态规划)

需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。多个测例,每个测例的输入占三行。第一行两个整数:n(n

2023-03-07 21:10:03 75

原创 1004: 0-1背包问题(暴力求解)

需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。多个测例,每个测例的输入占三行。第一行两个整数:n(n

2023-03-07 21:03:45 655

原创 1003: 快速排序

第一行是一个整数n,表示要排序的数的个数;下面一行是用空格隔开的n个整数。给定一个数列,用快速排序算法把它排成升序。输出排序后的数列,每个数字占一行。

2023-03-07 12:40:16 90

原创 1002: 归并排序

第一行是一个整数n(n不大于10000),表示要排序的数的个数;给定一个数列,用归并排序算法把它排成升序。输出排序后的数列,每个数字占一行。下面一行是用空格隔开的n个整数。

2023-03-07 12:37:52 88

原创 1001: 二分查找

题目描述给定一个单调递增的整数序列,问某个整数是否在序列中。

2023-03-04 14:28:14 82

原创 《编译原理》综合训练实习报告

首先就是for循环语句中,我的第一个分号之前只能是一个声明语句,但是C语言中,第一个分号之间的语句可以是表达式,也可以什么都没有。所以答辩完之后,我就按照老师的建议,修改了for语句的语义分析,基本上完成了for循环语句的功能。目标是完成MiniC语言中的单词的解析(词法分析),输出二元式,在词法分析的基础上,构造MiniC的递归下降分析文法,利用JavaCC实现递归下降文法,输出语法树。使用文件读入的方式测试编译程序,尽可能实现要求的功能,可以自己决定实现哪些扩展功能。

2022-12-27 21:12:24 1019

原创 Nwafu-OJ-1489 Problem s 统计吉利数字

问题 : 统计吉利数字时间限制: 1 Sec 内存限制: 128 MB提交: 4644 解决: 1770[提交][状态][讨论版]题目描述现代人对数字越来越讲究,都喜欢含有8的数字。现要你编程计算a至b之间的含有数字8的数的个数(比如181,88,8,28这些数都含有数字8,而21,45,49等没有含有数字8)。输入在一行中输入两个正整数a和b,用一个空格隔开。0

2022-12-01 00:56:56 541 1

原创 Nwafu-OJ-1490 Problem t 寻找亲近的同学

问题 : 寻找亲近的同学时间限制: 1 Sec 内存限制: 128 MB提交: 8009 解决: 1511[提交][状态][讨论版]题目描述小明喜欢把他的同学分类,每一类用一个大写英文字母标记。他只乐意亲近一部分类型的同学。请从小明的同学中挑出他愿意亲近的同学。输入输入三行。 第一行是一个正整数m,m是小明的学号。 第二行是由大写字母组成的字符串,其中的字符表示小明喜欢的类型。 第三行是由大写字母 组成的字符串,其中的字符是小明同学(包含他自己)的类型,按照学号有序。学号从1开始,没有间

2022-12-01 00:56:33 714

原创 Nwafu-OJ-1492 Problem v 删除子串

问题 : 删除子串时间限制: 1 Sec 内存限制: 128 MB提交: 6067 解决: 1236[提交][状态][讨论版]题目描述在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数:int delSubStr(char * src, char * sub,char * result); 【输入】 src:输入的被操作字符串 sub:需要查找并删除的特定子字符串【输出】 result:在src字符串中删除所有sub子字

2022-12-01 00:56:15 602

原创 Nwafu-OJ-1493 Problem w 比压牌

问题 : 比压牌时间限制: 1 Sec 内存限制: 128 MB提交: 4648 解决: 1153[提交][状态][讨论版]题目描述牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。 规则:出牌牌型有5种 [1]一张 如4 则5...9可压过 [2]两张 如44 则55,66,77,...,99可压过 [3]三张 如444 规则如[2] [4]四张 如4444 规则如[2] [5]五张 牌型只有1234

2022-12-01 00:54:47 638

原创 Nwafu-OJ-1478 Problem x 计算某年某月对应天数

问题 : 计算某年某月对应天数时间限制: 1 Sec 内存限制: 128 MB提交: 5314 解决: 1535[提交][状态][讨论版]题目描述输入年份和月份信息,编程判断年份月份的合法性,并在输入不合法时提示错误并退出程序,合法时输出该月对应天数(要求:1000

2022-12-01 00:54:29 666

原创 Nwafu-OJ-1479 Problem y 正负号与数字和

问题 : 正负号与数字和时间限制: 1 Sec 内存限制: 128 MB提交: 4172 解决: 1497[提交][状态][讨论版]题目描述输入一个整数,判断其正负号并计算各位数字之和。 输入一个不超过7位的整数输出"P"或"N",及各位数字之和。正数输出"P",负数输出"N",与数字和之间用一个逗号隔开样例输入456样例输出P,15提示参考教材P73,程序numdigit.c

2022-12-01 00:53:48 360

原创 关于C++报错:“表达式必须含有常值”的解决办法

关于C++报错:“表达式必须含有常值”的解决办法,因个人.能力有限,目前只知道这个一个方法^_^

2022-12-01 00:36:50 5705 1

原创 Nwafu-OJ-1488 Problem r C语言实习题八——文本文件行统计

问题 : C语言实习题八——文本文件行统计时间限制: 1 Sec 内存限制: 128 MB提交: 4339 解决: 1145[提交][状态][讨论版]题目描述请编写函数从文本文件中读取指定行的全部文字(文本文件每行字符长度不超过255),并对该行文字进行统计。预先定义有:typedef struct { int lineno; // 文本行在文件中的行号 int Uppers; // 该行中大写字母字符的个数 int Lowers; // 该行中小写字母

2022-11-30 01:47:32 1101 1

原创 Nwafu-OJ-1491 Problem u 城市电话号码

问题 : 城市电话号码时间限制: 1 Sec 内存限制: 128 MB提交: 9512 解决: 1244[提交][状态][讨论版]题目描述某城市电话号码包括地区码、前缀、有效号码三部分组成,其中地区码是0-4位数字;前缀是以非0开头的3位数字,有效号码是4位数字,各部分之间用减号(-)分隔,地区码为空时地区码与前缀之间不包含分隔符。请编写函数检测输入号码num的有效性,若输入号码符合上述规定返回0,否则返回1。函数原型定义如下:int CheckPhoneNum(char * num);输

2022-11-30 01:46:46 800

空空如也

空空如也

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

TA关注的人

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