秋招突击——6/21——新作{两两交换链表中的节点,K个一组反转链表}

文章目录

    • 引言
    • 新做
      • 删除有序数组中的重复项
        • 个人实现
      • K 个一组翻转链表
        • 个人实现
        • 参考代码
    • 总结

引言

  • 上午完全去听讲座了,听了三场,拿了三个讲座单,从九点一直到十二点。笔记本电脑插电才能用,就没带,所以没有进行复习。只有晚上的新作。

新做

删除有序数组中的重复项

  • 题目链接
    在这里插入图片描述
    在这里插入图片描述
个人实现
  • 非严格递增序列,原地删除重复出现的元素,每一个元素只出现一次
  • 元素的相对顺序保持一致,返回nums中唯一元素的个数
    要求
  • 前k个元素包含唯一的元素,其余的元素与nums大小不重要
  • 返回K

这个题目注意

  • 和之前的一样,这道题要看清楚,我就觉得奇怪,原来他妈的昨天做过了,我靠。

具体实现

  • index,不同的元素复制过来,如果相同的元素直接跳过。
class Solution {
public:int removeDuplicates(vector<int>& nums) {int idx = 0;for (int i = 0; i < nums.size(); ) {nums[idx] = nums[i];idx ++ ,i ++;while(i < nums.size() && nums[i] == nums[i - 1]) i ++;}return idx;}
};

K 个一组翻转链表

在这里插入图片描述
在这里插入图片描述

个人实现
  • 拆解问题,这个可以拆解成子链表反转 + 遍历到第K个链表。

  • 子链表反转

    • 三个指针节点a,b,c。然后交换a和b,使用c记录对应的下一个链表的内容
  • 遍历k个链表

    • 使用k进行遍历,然后获取对应的值,这个主要是获取需要改变的头结点,然后在进行遍历
  • 有点心神不宁,有点烦躁,不是很想写了,有点烦,所以暂时就这样吧。

  • 卡在了怎么保证找到第k个节点的头节点是啥

下述代码没有调整过,只是有点心神不宁,心烦意乱,内心难以平静

  • 总的来说,大概逻辑是实现的,但是没有调通。
 ListNode* reverseKGroup(ListNode* head, int k) {int idx = 0;auto dummy = new ListNode();dummy->next = head;// 这里是要遍历k次,然后再往后进行遍历auto  l = dummy,r = dummy;while (r){r = r->next,idx ++;if (idx == k - 1) {auto a = l,b = l->next,c = l->next->next;do {b->next = a;c = c->next;a = b;b = c;}while(c == r);idx = 0;l = r;}}
}

在这里插入图片描述

参考代码

思路分析

  • 他是从整体的角度出发的,具体步骤如下
    • 先是交换的邻接节点的指针,让他反转
    • 然后在交换的对应的头结点,保证首尾节点的连接相关性

具体步骤如下

  • 先往后遍历k次 ,如果可以的话,就跳过
  • 然后更换对应的邻接节点的指针

在这里插入图片描述

ListNode* reverseKGroup(ListNode* head , int k){auto dummy = new ListNode(-1);dummy->next = head;for (auto p = dummy;;) {// 这里是向后遍历k次,判定当前这个阶段能否进行遍历auto q = p;for (int i = 0; i < k && q; ++i) q = q->next;if (!q) break;// 定义邻接节点反转指针auto  a = p->next ,b = a->next;for (int i = 0; i < k - 1; ++i) {// 保存b的后继节点auto c = b->next;// 反转b的next节点方向b->next = a;// 然后的三个指针向后迁移a = b,b = c;}// 反转首尾节点的指向auto c = p->next;p->next = a,c->next = b;p = c;}return dummy->next;
}

总结

  • 昨天就做了一道题,两道题,拖到了今天早上才发,不行呀!不过昨晚,解决了我内心的一根刺,心情好了很多的。
  • 继续加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt开发-08_layout 布局

Qt 提供了非常丰富的布局类&#xff0c;基本布局管理类包括&#xff1a;QBoxLayout、QGridLayout、QFormL ayout 和 QStackedLayout。这些类都从 QLayout 继承而来&#xff0c;它们都来源于 QObject&#xff08;而不是 QWi dget&#xff09;。创建更加复杂的布局&#xff0c;可…

设置PowerShell打开默认路径是桌面,方便在桌面运行py程序

1.打开 PowerShell 以管理员身份运行。右键点击 PowerShell 图标,然后选择“以管理员身份运行”。 查看当前执行策略: Get-ExecutionPolicy2.更改执行策略: 为了允许脚本运行,你可以将执行策略设置为 RemoteSigned 或 Unrestricted。下面的命令将执行策略更改为 RemoteS…

广东省建筑施工安管人员考核报名流程及照片处理方法

广东省建筑施工企业安管人员考核工作现已全面启动&#xff0c;这对于提升建筑行业的安全生产管理水平至关重要。为了确保广大考生能够顺利报名并参与考核&#xff0c;本文精心梳理了考核报名流程&#xff0c;并提供了证件照的规范处理方法。同时&#xff0c;针对证件照这一关键…

windows端口被占用问题,杀死进程

描述&#xff1a;端口被占用 在使用IntelliJ IDEA运行程序时&#xff0c;可能会遇到端口占用的情况&#xff0c;这通常由以下几个原因引起&#xff1a; 1、同一程序多次启动&#xff1a;如果你没有正确关闭之前运行的程序实例&#xff0c;再次尝试运行相同的程序时&#xff0c;…

mysql 库存表 累计 sql语句 第一方法

这是一个表&#xff0c;要求累计金额 。表名t &#xff0c;字段lsh&#xff0c;shangpinbh&#xff0c;jine。 流水号商品编号金额累计金额1100125002500210013000550031004400095004100610001050051007200012500 select lsh,shangpinbh,jine,(select sum(jine) from t where …

使用 ProGuard 混淆你的 Java 代码

使用 ProGuard 混淆你的 Java 代码 一、简介二、配置pom三、使用混淆后的 JAR 文件四、总结 一、简介 ProGuard 是一款流行的 Java 代码混淆工具&#xff0c;可以混淆和优化你的代码&#xff0c;使其更难被反编译和分析。混淆通过重命名类、方法和变量名称来实现&#xff0c;从…

短剧app系统开发源码对接聚合广告

短剧APP是一种专门用于观看、创作和分享短剧的移动应用程序。它通常集成了视频播放、社交互动、内容创作等功能&#xff0c;为用户提供了一个便捷的短剧观赏和交流的平台。 短剧APP的特点如下&#xff1a; 时长短&#xff1a;短剧APP提供的短剧内容通常精简扼要&#xff0c;每…

QMetaEnum 使用详解

QMetaEnum 是 Qt 框架中的一个类&#xff0c;它提供了关于枚举类型的元数据信息。以下是 QMetaEnum 使用的详解&#xff1a; 1. 自定义枚举类型 在使用 QMetaEnum 之前&#xff0c;你需要先定义一个枚举类型&#xff0c;并且确保它是 QObject 的子类的一部分。你可以使用 Q_E…

兴顺物流管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;驾驶员管理&#xff0c;物流资讯管理&#xff0c;车辆管理&#xff0c;基础数据管理 员工账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;物流资讯管理&…

秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}

文章目录 引言复习新作删除链表倒数第N个节点题目描述个人实现参考实现 总结 引言 主管面&#xff0c;面的很凄惨&#xff0c;不过无所谓了&#xff0c;我已经尽力了。上午都在整理的面经&#xff0c;没有复习算法&#xff0c;而且这两天要弄一下论文&#xff0c;二十号就要提…

C#使用Scoket实现服务器和客户端互发信息

20240616 By wdhuag 目录 前言&#xff1a; 参考&#xff1a; 一、服务器端&#xff1a; 1、服务器端口绑定&#xff1a; 2、服务器关闭&#xff1a; 二、客户端&#xff1a; 1、客户端连接&#xff1a; 2、客户端断开&#xff1a; 三、通讯&#xff1a; 1、接收信…

Hallo技术:革新电影、游戏与虚拟现实中的动态肖像动画

在数字娱乐的浪潮中&#xff0c;逼真的动态肖像动画成为了电影制作、游戏开发和虚拟现实等领域不可或缺的一部分。复旦大学研发的Hallo技术&#xff0c;以其独特的扩散模型和分层音频驱动视觉合成模块&#xff0c;为这一领域带来了革命性的突破。 技术概览 Hallo技术是一种基…

GSettings(三)——GSettings底层原理

GSettings 是基于 D-Bus 的高级配置系统&#xff0c;主要用于 GNOME 桌面环境和其他依赖 GSettings 的应用程序。它通过 GObject 库与 DConf 进行通信&#xff0c;以便读取和写入配置数据。 GSettings 工作原理 GSettings API&#xff1a; 开发人员通过 GSettings API 来读取和…

Spring Boot启动报错Lombok supports: sun/apple javac 1.6, ECJ

版本 idea 2023.3.4 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.32</version></dependency> 解决方式 File->Settings->Build, Execution, Deployment->Com…

利用机器学习重构视频中的人脸

引言 中国与英国的研究团队携手合作&#xff0c;开创了一种创新的视频面孔重塑技术。这项技术能够以极高的一致性对视频中的面部结构进行逼真的放大和缩小&#xff0c;且避免了常见伪影的产生。 从研究人员选取的YouTube视频样例中可见&#xff0c;经过处理后&#xff0c;女演…

机器学习——训练集、测试集、验证集与模型选择

在机器学习的过程中&#xff0c;数据的划分是至关重要的步骤。为了评估模型的泛化性能&#xff0c;我们通常会将数据集划分为训练集、测试集和验证集。这三个集合各有不同的作用&#xff0c;下面我们将逐一介绍。一、训练集 训练集是用于训练模型的数据集。通过使用训练…

UE4中性能优化和检测工具

UE4中性能优化和检测工具合集 简述CPUUnreal InsightUnreal ProfilerSimpleperfAndroid StudioPerfettoXCode TimeprofilerBest Practice GPUAdreno GPUMali GPUAndroid GPU Inspector (AGI) 内存堆内存分析Android StudioLoliProfilerUE5 Memory InsightsUnity Mono 内存Memre…

去水印助手,小熊录屏,OldRoll复古胶片相机

我们将带大家了解三款特色应用,软件是经过大佬处理过的&#xff0c;都非常的好用&#xff01;今天分享给大家&#xff01;如果你也喜欢这几款软件不要忘记给博主点击点赞和再看哦&#xff01; 软件获取链接在链接的底部&#xff1a; 一键去水印助手 无论您是在各大社交平台上…

【LinuxC语言】互斥量

文章目录 前言一、为什么要引入互斥量二、临界区的概念互斥量pthread_mutex_t类型pthread_mutex_init()pthread_mutex_destroy()pthread_mutex_lock()函数pthread_mutex_trylock()函数pthread_mutex_unlock()函数总结前言 在并发编程中,我们经常会遇到多个线程需要访问和修改…