Loading

摘要: 题目描述 这道题的重点在在于理解题意。其特点在于需要在不给链表的head结点的情况下删除某个给定结点node。 首先想到的思路是把结点上的元素值依次向前移动,然后删除最后一个结点。 代码如下: class Solution { public: void deleteNode(ListNode* no 阅读全文
posted @ 2024-02-28 00:02 SaTsuki26681534 阅读(17) 评论(0) 推荐(0)
摘要: 题目描述 思路 老样子,还是先用递归试试。 在基本问题中,也就是left == rigth或者left+1 == right时,直接将两个元素调换顺序即可。 我突然发现代码随想录里好像讲过一个用双指针法反转链表的算法。 那道题是把整个链表翻转, 代码如下: //双指针法 class Solution 阅读全文
posted @ 2024-02-27 23:23 SaTsuki26681534 阅读(26) 评论(0) 推荐(0)
摘要: 题目描述 思路 先想到的一个方法是快慢指针扫描小于x的结点,然后把这些节点插入到慢指针后面去,但是写着写着好像发现这个题也可以用递归来写,后面的若干个结点的子表和整个问题的性质是一样的。 普通方法的代码如下: //只是大致是这样,这个代码还有一些用例跑不过 class Solution { publ 阅读全文
posted @ 2024-02-27 14:41 SaTsuki26681534 阅读(22) 评论(0) 推荐(0)
摘要: 题目描述 思路 这些链表的有序性使这些操作都不难写。 前面在数组的题目里写过跳过重复元素的算法,这个和那个类似,用快慢指针写,但是由于这个是删除重复元素,所以我用了两个相邻的慢指针,左边的慢指针其实是为了保存真正的慢指针的上一个位置。 代码如下: class Solution { public: L 阅读全文
posted @ 2024-02-24 23:28 SaTsuki26681534 阅读(33) 评论(1) 推荐(0)
摘要: 题目描述 思路 首先用双指针法向后移动,分别获取链表的最后一个结点和倒数第k的结点,再把这部分连接到链表的头部即可,这部分的操作并不难。 但是实际这样写了之后就会发现,如果链表的长度小于k的话,这样的操作就是行不通的,需要对这种情况进行特殊处理。 但是在处理过程中发现这个操作有这样的特点:当链表长度 阅读全文
posted @ 2024-02-24 22:43 SaTsuki26681534 阅读(28) 评论(0) 推荐(0)
摘要: 题目描述 分析 这道题实际的解法是要通过递归来写,由于链表的特性:链表的任何一个子表都是链表。所以很多链表的算法用递归来写会非常简便。这里先尝试着写一下非递归的算法,再写一遍递归的算法。 非递归: class Solution { public: // void Insert(ListNode* n 阅读全文
posted @ 2024-02-24 20:22 SaTsuki26681534 阅读(28) 评论(1) 推荐(0)
摘要: #### 1.特征值和特征向量 **特征值和特征向量的定义:** 对于n阶矩阵A,如果存在一个数λ以及非零n维列向量α,使得 **Aα = λα** 成立 则称λ是矩阵A的一个**特征值**。非零向量α是**矩阵A属于特征值的一个特征向量**。 >这个式子可以写成**(λE-A)α = 0,α≠0* 阅读全文
posted @ 2023-08-23 20:10 SaTsuki26681534 阅读(3600) 评论(0) 推荐(1)
摘要: 外部排序不会考算法设计,考相关的概念和排序方法过程等。 #### 1.外部排序的基本概念 外部排序是指对于记录很多的大文件进行排序时,无法将其完全复制进内存中进行排序,因此需要将外存中的待排记录一部分一部分地调入内存中进行排序,在排序过程中需要进行多次内存外存之间的交换,这种排序方法就称为外部排序。 阅读全文
posted @ 2023-08-22 16:23 SaTsuki26681534 阅读(252) 评论(0) 推荐(0)
摘要: #### 1.简单复习一下前面学到的排序算法 **三种插入排序:** **直接插入:** 依次将后面无序序列中头部的元素插入前面的有序序列中(找到插入位置,这个位置后面的元素一律后移) **折半插入:** 相比直接插入只是用折半查找的方式查找插入位置,元素的移动操作不变 **希尔排序:** 把相隔一 阅读全文
posted @ 2023-08-21 22:14 SaTsuki26681534 阅读(220) 评论(0) 推荐(0)
摘要: #### 1.归并排序 归并排序中的"归并"的意义就是把多个有序表合并为一个新的有序表。 **算法思想:** 二路归并排序:初始情况下将长度为n的待排序表分为n个子表,则每个子表的长度为1,是有序的。每趟排序尽量将这些子表按位置相邻两两归并,重复直到合并为一个长度为n的有序表为止。 具体实现: ![ 阅读全文
posted @ 2023-08-20 20:06 SaTsuki26681534 阅读(125) 评论(0) 推荐(0)