自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构:c++ (OJ202) 快乐数

编写一个算法来判断一个数。

2024-09-29 10:57:38 267

原创 数据结构:c++(OJ1089)复写零

调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4],请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。调用函数后,输入的数组将被修改为:[1,2,3]进行上述修改,不要从函数返回任何东西。给你一个长度固定的整数数组。

2024-09-28 13:36:21 204

原创 数据结构:双指针—移动0(OJ283)

dest:已处理的区间内,非0元素的最后一个位置。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。cur:从左往右扫描数组,遍历。,编写一个函数将所有。利用数组下标充当指针。

2024-09-26 19:09:02 293

原创 C++:模板初级

使用函数重载虽然可以实现,但是有一下几个不好的地方:1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增 加对应的函数2. 代码的可维护性比较低,一个出错可能所有的重载均出错 那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?如果在C++中,也能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同 材料的铸件(即生成具体类型的代码),那将会节省许多材料。巧的是前人早已将树栽好,我们只 需在此乘凉。

2024-09-25 15:38:31 1245

原创 java:100~300之间的质数

【代码】java:100~300之间的质数。

2024-09-25 12:31:04 82

原创 c++:类和对象(中)

默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,我们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最 两个取地址重载不重要,我们稍微了解⼀下即可。其次就是C++11以后还会增加两个默认成员函数,移动构造和移动赋值,这个我们后⾯再讲解。默认成员函数很重要,也⽐较复杂,我们要从两个⽅⾯ 去学习:•(1):我们不写时,编译器默认⽣成的函数⾏为是什么,是否满⾜我们的需求。

2024-09-22 15:23:54 1059

原创 数据结构:插入

有序表,试写一算法,将x插入到L中并使L仍是递增有序表。

2024-09-20 19:42:43 132

原创 数据结构:(OJ142)环形链表II

2.慢指针进环之后,快指针肯定会在慢指针⾛⼀圈之内追上慢指针,因为:慢指针进环后,快慢指针之间的距离最多就是环的⻓度,⽽两个指针在移动时,每次它们⾄今 的距离都缩减⼀步,因此在慢指针移动⼀圈之前快,指针肯定是可以追上慢指针的,⽽快指针速度是 满指针的两倍,因此有如下关系是: 2 * (L+X)=L+X+nR L+X=nR L=nR-XL = (n-1)R+(R-X) (n为1,2,3,4......,n的⼤⼩取决于环的⼤⼩,环越⼩n越⼤)极端情况下,假设n=1,此时: L=R-X ,,则在该链表中没有环。

2024-09-19 23:22:46 343

原创 数据结构:(OJ141)环形列表

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。(即,常量)内存解决此问题吗?,判断链表中是否有环。给你一个链表的头节点。

2024-09-18 00:55:26 285

原创 C++:类和对象(上)

•(1)class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数。• (2)为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_或者_m 开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。

2024-09-18 00:07:39 1243

原创 数据结构:(OJ160)相交链表

请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。,函数返回结果后,链表必须。

2024-09-17 18:52:13 666

原创 java.人机猜拳游戏

人机猜拳,这里我们定义输入0是剪刀,1是石头,2是布。电脑的数字为随机产生,可以用Random。

2024-09-16 14:16:28 204

原创 java:练习

编写一个 Java 程序,计算并输出从 1 到用户指定的数字 n 中,所有“幸运数字”。幸运数字的定义如下:条件 1:数字的所有位数(如个位、十位)加起来的和是 7 的倍数。

2024-09-15 18:49:48 255

原创 数据结构:(牛客OR36)链表的回文结构

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true。

2024-09-14 20:42:28 468

原创 C++:入门基础

函数局部域,全局域,命名空间域,类域只能定义在全局(7)在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全 局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名 冲突或名字污染,namespace关键字的出现就是针对这种问题的. c语⾔项⽬类似下⾯程序这样的命名冲突是普遍存在的问题,C++引⼊namespace就是为了更好的解决 这样的问题.

2024-09-14 01:15:00 904

原创 数据结构:顺序表的实现

【代码】数据结构:顺序表的实现。

2024-09-13 23:22:37 134

原创 数据结构:(牛客)CM11 链表分割

给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。现有一链表的头指针 ListNode*

2024-09-09 18:47:14 380

原创 数据结构:(OJ 912).排序数组

3.cur如果遇到比key小的,与left交换,left++,cur++.2.left指向左边,right指向右边,cur指向left+1的方向。4.cur遇到比key大的,跟right交换,right--.给你一个整数数组 nums,请你将该数组升序排列。输入:nums = [5,1,1,2,0,0]5.cur遇到和key相等,cur++.输入:nums = [5,2,3,1]1.key默认取left位置的值。输出:[0,0,1,1,2,5]6.直到cur>right结束。输出:[1,2,3,5]

2024-09-09 12:53:34 374

原创 数据结构:(LeetCode21)合并两个有序链表

新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2024-09-08 18:48:05 139

原创 数据结构:(LeetCode面试题02.02)返回倒数第K个结点

思路:先让fast走K个指针,假设有N个结点,然后剩余了N-K个结点,最后让fast和slow再同时走直到fast->next指针走为空结点,slow->val值为所返回倒数第k个结点。实现一种算法,找出单向链表中倒数第 k 个节点。1->2->3->4->5 和。本题相对原题稍作改动。

2024-09-07 23:30:59 93

原创 数据结构:(LeetCode876)链表的中间结点

该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。如果有两个中间结点,则返回第二个中间结点。,请你找出并返回链表的中间结点。链表只有一个中间结点,值为 3。

2024-09-07 22:44:32 321

原创 数据结构:(LeetCode206 )反转链表

链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。

2024-09-07 00:34:45 432

原创 数据结构:(LeetCode203)移除链表元素

请你删除链表中所有满足。给你一个链表的头节点。

2024-09-06 01:08:02 473

原创 数据结构:(LeetCode88)合并两个有序数组

注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。代码如下:(逆序三指针法)合并结果是 [1]。合并结果是 [1]。的算法解决此问题吗?

2024-09-04 23:46:44 657

原创 数据结构:(LeetCode144)二叉树的前序遍历

递归算法很简单,你可以通过迭代算法完成吗?

2024-09-03 00:36:58 354

原创 数据结构:(26LeetCode)删除有序数组中的重复项

/ 长度正确的期望答案。不需要考虑数组中超出新长度后面的元素。如果所有断言都通过,那么您的题解将被。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度。的前两个元素被修改为。函数应该返回新的长度。的前五个元素被修改为。

2024-09-02 00:14:14 306

原创 数据结构:(LeetCode572)另一棵子树

具有相同结构和节点值的子树。的某个节点和这个节点的所有后代节点。也可以看做它自身的一棵子树。

2024-09-01 17:55:16 292

原创 数据结构:(LeetCode101)对称二叉树

你可以运用递归和迭代两种方法解决这个问题吗?给你一个二叉树的根节点。, 检查它是否轴对称。

2024-09-01 17:20:41 344

原创 数据结构:(LeetCode 965)相同的树

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。,编写一个函数来检验这两棵树是否相同。给你两棵二叉树的根节点。

2024-08-31 18:59:28 740

原创 数据结构:(LeetCode965)单值二叉树

只有给定的树是单值二叉树时,才返回 true;否则返回 false。每个节点的值都是整数,范围为 [0, 99]。输入:[1,1,1,1,1,null,1]给定树的节点数范围是 [1, 100]。输入:[2,2,2,5,2]

2024-08-31 16:56:47 301

原创 数据结构:27(移除元素)Leetcode(OJ)

/ 它以不等于 val 的值排序。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。// 长度正确的预期答案。// 排序 nums 的前 k 个元素。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你的函数函数应该返回 k = 2, 并且 nums。元素的顺序可能发生改变。如果所有的断言都通过,你的解决方案将会。中的前两个元素均为 2。

2024-08-30 23:40:32 1262

原创 数据结构:Tree->结点个数以及⾼度等

【代码】数据结构:Tree->结点个数以及⾼度等。

2024-08-30 20:50:48 925

原创 数据结构:堆

【代码】数据结构:堆。

2024-08-28 13:55:18 541

原创 数据结构:622设计循环列表(LeetCode)

在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。// 设置长度为 3。enQueue(value): 向循环队列插入一个元素。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。MyCircularQueue(k): 构造器,设置队列长度为 k。deQueue(): 从循环队列中删除一个元素。// 返回 true。isEmpty(): 检查循环队列是否为空。

2024-08-26 23:46:38 336

原创 数据结构:用栈实现队列(232)LeetCode

你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你能否实现每个操作均摊时间复杂度为 O(1) 的队列?换句话说,执行 n 个操作的总时间复杂度为 O(n) ,即使其中一个操作可能花费较长时间。你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)

2024-08-26 20:24:23 1313

原创 数据结构:189(轮转数组)leetcode(OJ)

向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2024-08-25 17:21:45 265

原创 数据结构: 用队列实现栈(力扣225)

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(myStack.empty();// 返回 False。你能否仅用一个队列来实现栈。

2024-08-25 11:07:37 282

原创 数据结构:队列

【代码】数据结构:队列。

2024-08-24 11:31:42 455

原创 数据结构:(OJ题力扣 20). 有效的括号

判断字符串是否有效。

2024-08-24 08:32:38 227

原创 数据结构:栈

1.栈1.栈1.概念与结构。:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶。:栈的删除操作叫做出栈。出数据也在栈顶。2.栈的底层结构选择。栈的实现⼀般可以使⽤数组或者链表实现,相对⽽⾔数组的结构实现更优⼀些。因为数组在尾上插⼊ 数据的代价⽐较⼩。1.Stack.h文件。

2024-08-07 13:51:24 233

空空如也

空空如也

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

TA关注的人

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