当前位置: 首页 > news >正文

【LeetCode】剑指 Offer(8)

目录

题目:剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 24. 反转链表 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣(Leetcode)

题目的接口:

class Solution {
public:vector<int> exchange(vector<int>& nums) {}
};

解题思路:

方法1:

我的思路比较暴力,也是最容易想到的思路:

建一个vector,

第一次遍历数组,把奇数插入进去,

第二次遍历数组,把偶数插入进去,

然后返回即可。

这种方法最简单。

方法2:

其实我还想到一种方法,原地完成:

只需要遍历一次数组,遇到偶数与数组尾部交换,

然后让尾指针++即可。

不过我用的是第一种方法。

代码:

class Solution {
public:vector<int> exchange(vector<int>& nums) {vector<int> v;//第一次遍历,尾插奇数for(auto e : nums){if(e % 2 == 1){v.push_back(e);}}//第二次遍历,尾插偶数for(auto e : nums){if(e % 2 == 0){v.push_back(e);}}return v;}
};

过啦!!!

题目:剑指 Offer 24. 反转链表 - 力扣(Leetcode)

题目的接口:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {}
};

解题思路:

这道题看完后,我有两种思路,

第一种是将链表的数据逆置;

第二种是将链表的指针逆置;

我个人感觉将链表的指针逆置更容易,效率也更高一些,

具体思路就是将原头结点指向空,

双指针遍历链表逆置指针即可。

代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {//判断链表是否为空if(head == nullptr){return head;}//设置双指针ListNode* cur = head->next;ListNode* prev = head;//将头结点指向空head->next = nullptr;//遍历链表,逆置指针指向while(cur){ListNode*tmp = prev;prev = cur;cur = cur->next;prev->next = tmp;}return prev;}
};

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

相关文章:

【LeetCode】剑指 Offer(8)

目录 题目&#xff1a;剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 24. 反转链表 - …...

安装MySQL数据库

安装MySQL数据库 获取软件&#xff1a;https://dev.mysql.com/downloads/mysql/ 下载完成后进行解压操作 若安装目录里没有my.ini配置文件&#xff0c;则需要新建一个my.ini的配置文件。 编辑my.ini配置文件&#xff0c;将配置文件中的内容修改成下面内容 [client] # 设置…...

手写Android性能监测工具,支持Fps/流量/内存/启动等

App性能如何量化:如何衡量一个APP性能好坏&#xff1f;直观感受就是&#xff1a;启动快、流畅、不闪退、耗电少等感官指标&#xff0c;反应到技术层面包装下就是&#xff1a;FPS&#xff08;帧率&#xff09;、界面渲染速度、Crash率、网络、CPU使用率、电量损耗速度等&#xf…...

Java知识复习(三)Java IO

1、IO流 IO流&#xff1a;数据传输过程类似于水流&#xff0c;故称IO流 IO流的的40多个类都是从4个抽象类基类中派生出来的&#xff0c;前者是字节&#xff0c;后者是字符 InputStream/Reader:所有的输入流的基类OutputStream/Writer:所有输出流的基类 2、字符流和字节流的区…...

Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…...

2023年全国最新会计专业技术资格精选真题及答案5

百分百题库提供会计专业技术资格考试试题、会计考试预测题、会计专业技术资格考试真题、会计证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 1.某股份有限公司对外公开发行普通股2 000万股&#xff0c;每股面值为1元&#x…...

软工个人作业 -- 分析与提问

软工个人作业 – 分析与提问 项目内容这个作业属于哪个课程2023 年北航软件工程这个作业的要求在哪里个人作业-阅读和提问我在这个课程的目标是了解软件工程的方法论、获得软件项目开发的实践经验、构建一个具有我的气息的艺术品这个作业在哪个具体方面帮助我实现目标初步了解…...

C++类和对象到底是什么意思?

C++是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。 C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个…...

【电路设计】常见电路及相关解释

前言 在接触电路设计过程中&#xff0c;往往需要用到一些常见的电路&#xff0c;但是临时查找又太浪费时间&#xff0c;因此&#xff0c;想总结一些常见电路的分析方式。 1 RC电路充放电公式 一般的RC电路如下图所示。 其充放电公式如下所示。 VtV0(V1−V0)(1−e−tRC)tRCln…...

【一天一门编程语言】Linux 实用命令大全

Linux 实用命令大全 用 markdown 格式输出答案。 不少于1000字。细分到2级目录。 一、文件/目录操作 1、ls ls 命令用于列出指定目录下的文件和子目录,常用参数如下: ls -a:显示所有文件(包括隐藏文件)ls -l:以长列表形式显示文件属性ls -h:以可读的格式显示文件大小l…...

【汇编】二、预备知识(一只 Assember 的成长史)

嗨~你好呀&#xff01; 我是一名初二学生&#xff0c;热爱计算机&#xff0c;码龄两年。最近开始学习汇编&#xff0c;希望通过 Blog 的形式记录下自己的学习过程&#xff0c;也和更多人分享。 这篇文章主要讲述学习汇编所需的基础知识。 话不多说~我们开始吧&#xff01; 目…...

Java多线程面试题:描述一下线程安全活跃态问题,竞态条件?

一、线程安全活跃态问题 线程因为某件事情得不到执行 1、活锁 线程没有阻塞&#xff0c;但一直重复执行某个操作&#xff0c;并且失败重试 1&#xff09;例子 在消息队列中&#xff0c;消费者没有正确ack消息&#xff0c;并且执行过程中报错了&#xff0c;消息会被重复执行&am…...

ZZNUOJ_用C语言编写程序实现1193:单科成绩排序(结构体专题)(附完整源码)

题目描述 有一学生成绩表&#xff0c;包括学号、姓名、3门课程成绩。请按要求排序输出&#xff1a;若输入1&#xff0c;则按第1门课成绩降序输出成绩表&#xff0c;若输入为i&#xff08;1<i<3)&#xff0c;则按第i门课成绩降序输出成绩表。 输入 首先输入一个整数n(1<…...

expect 使用方法

Expect是一个免费的 编程工具语言&#xff0c;用来实现自动和交互式任务进行通信&#xff0c;而无需人的干预。 1、传参方法&#xff1a; bash是通过$0 ... $n接收参数 expect是通过set <变量名称> [lindex $argv <param index>], 2、判断语法 if { condition } { …...

Spring AOP详解-Spring官方原版

一、概述 面向方面编程(AOP)补充了面向对象编程(OOP) 提供了另一种思考程序结构的方式。模块化的关键单元 在OOP中是类,而在AOP中,模块化的单位是方面。方面 实现跨越问题(如事务管理)的模块化 多种类型和对象。(这种关切通常被称为“跨领域”关切 Spring 的关键组件之…...

链表习题精选(持续更新中)

第一题给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。请注意&#xff0c;偶数组和奇数组内部…...

【log】操作类日志处理 与 报错类日志处理logback

文章目录一、操作类日志处理【环绕增强】aop环绕增强导包第一步&#xff1a;自定义注解interface第二步&#xff1a;在Controller写一个测试的方法&#xff1a;第三步&#xff1a;编写LogAspect增强类与增强方法日志写入数据库&#xff08;使用mybatis&#xff09;第一步&#…...

百度网盘好友发来的文件手动输入JS选择代码批量保存

基本代码&#xff1a;document.getElementsByClassName(global-clearfix)[3].getElementsByTagName(li)[0].getElementsByTagName(a)[0].click();范围选择函数&#xff1a;这个要手动全部取消选择function sel(a,b){var alidocument.getElementsByClassName(global-clearfix)[3…...

【CS224W】(task6)Google的PageRank算法

note 求解pagerank&#xff1a;用power iteration&#xff08;幂迭代&#xff09;方法求解 rM⋅r\mathbf{r}\mathbf{M} \cdot \mathbf{r}rM⋅r ( MMM 是重要度矩阵)用random uniform teleporation解决dead-ends&#xff08;自己指向自己&#xff09;和spider-traps&#xff08…...

Python安装拓展库及常用的pip命令及其用法

Python安装拓展库 在Python中&#xff0c;库是一些预先编写好的代码和函数&#xff0c;它们可以帮助你解决特定的问题。如果你想要扩展Python库&#xff0c;通常有两种方法&#xff1a;使用现有的第三方库&#xff0c;或者编写自己的库。 1.使用现有的第三方库 Python社区中…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...