【牛客刷题专栏】0x22:JZ21 调整数组顺序使奇数位于偶数前面(一)(C语言编程题)

news2024/11/24 13:26:16

前言

  • 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失
  • 个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

目录

  • 前言
  • 问题描述:
  • 举例:
  • 解法思路:
  • 代码结果:
  • 结束语


问题描述:

  • 输入一个长度为 n 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

数据范围:0≤n≤5000,数组中每个数的值 0≤val≤10000
要求:时间复杂度 O(n),空间复杂度 O(n)
进阶:时间复杂度 ),空间复杂度O(1)


举例:

//示例1:
//输入:
[1,2,3,4]
//返回值:
[1,3,2,4]
//==========================
//示例2:
//输入:
[2,4,6,5,7]
//返回值:
[5,7,2,4,6]
//==========================
//示例3:
//输入:
[1,3,5,6,7]
//返回值:
[1,3,5,7,6]

解法思路:

  • 这道题参考插入排序的思想:对于一个数组 2 3 4 5 6,维护一个奇数序列,遍历元素下标,遇到奇数元素就向前插入,直到遇到奇数序列,比如说遇到3,那么向前交换 3 2 4 5 6,遇到5,交换 3 2 5 4 6 再交换 3 5 2 4 6

代码结果:

  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param array int整型一维数组 
 * @param arrayLen int array数组长度
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int* reOrderArray(int* array, int arrayLen, int* returnSize ) {
    // write code here
    //第一时间想到的是插入排序
    //遍历所有元素 找到奇数位置
    if(arrayLen<=1){
        *returnSize=arrayLen;
        return array;
    }
        
    for(int i=0;i<arrayLen;i++){
        int j=i;
        if(array[j]%2==1){
        //交换的条件:前面有元素,并且前面元素是偶数 就进行交换
            while(j>0&&array[j-1]%2==0){
                int temp=array[j];
                array[j]=array[j-1];
                array[j-1]=temp;
                j--;
            }
        }
    }
    *returnSize=arrayLen;
    return array;
}


结束语

  • 以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转),可以尝试注册使用。
  • 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

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

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

相关文章

Java阶段二Day03

Java阶段二Day03 文章目录 Java阶段二Day03V5BirdBootApplicationClientHandlerHttpServletRequest V6BirdBootApplicationClientHandlerHttpServletRequest V7BirdBootApplicationClientHandlerHttpServletRequestHttpServletResponse V8BirdBootApplicationClientHandlerHttp…

【Unity入门】14.值类型和引用类型

【Unity入门】值类型和引用类型 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;值类型 &#xff08;1&#xff09;C#的值类型 1. 布尔类型&#xff08;bool&#xff09; 2. 字符类型&#x…

【软考备战·希赛网每日一练】2023年4月18日

文章目录 一、今日成绩二、错题总结第一题第二题第三题 三、知识查缺 题目及解析来源&#xff1a;2023年04月18日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; MTTF&#xff1a;平均无故障时间 MTTR&#xff1a;平均故障修复时间 可用性/可靠性MTTF…

一文入门Typrscript和Vue3

一、TypeScript快速上手 在TypeScript专栏已经详细介绍过TypeScript,在此总结一下TypeScript和Vue3的基础知识。 1. 初识 TypeScript 1.1 TypeScript 的介绍 TypeScript是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集&#xff0c;最终会被编译为JavaScrip…

Python轻量级Web框架Flask(9)——图书馆项目

1、项目要求&#xff1a; 创建一个项目&#xff0c;用来说明出版社&#xff0c;书籍和作者的关系。作者和书籍之间的关系&#xff1a;1对多&#xff08;一本书由一个作者完成&#xff0c;一本书可以有多个创作者&#xff09;出版社和书籍之间的关系&#xff1a;多对多&#xf…

day15 消息队列

目录 消息队列 消息队列的使用 发送消息 消息的接收 消息队列的控制 消息队列 概念&#xff1a; 消息队列是system V IPC对象的一种&#xff1b; 消息队列有消息队列ID来唯一标识&#xff1b; 消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等&a…

有介质的高斯定理详细证明(电偶极子模型)以及例题讲解

目录 静电场中的电介质 电极化强度的引入 电偶极子模型的计算 电介质极化过程 极化电荷引入 推导 各向同性和线性的电介质 例题 静电场中的电介质 电介质与导体的区别&#xff1a;所有的粒子被束缚在原子核周围&#xff08;限制空间&#xff09; 电介质分为两种 1.无…

OldWang带你了解MySQL(十)

文章目录 &#x1f525;MySQL事务&#x1f525;使用事务&#x1f525;事务的并发问题&#x1f525;MySQL的用户管理&#x1f525;MySQL分页查询 &#x1f525;MySQL事务 事务简介 事务是指作为单个逻辑工作单元执行的一系列操作&#xff0c;要么完全地执行&#xff0c;要么完…

【网络小知识】当我在浏览器url输入文本后的解析流程/http协议对比https协议

当我们在地址栏输入信息之后&#xff0c;我们会得到浏览器给我们一个返回的信息&#xff0c;那么这个信息怎么出来的&#xff1f;且看下文~~~ 目录 ⭐一、浏览器url解析流程⭐二、http协议对比https协议 ⭐一、浏览器url解析流程 在浏览器地址栏输入文本后&#xff0c;比如 “…

window.postMessage()接收不到信息(失效)

问题描述 按照正常的代码逻辑&#xff0c;应该是这个样子&#xff0c;通过iframe打开子窗口&#xff0c;能够正常通信。 // 接收端&#xff08;父窗口&#xff09; window.onmessage function (e) {// 逻辑代码 }// 发送端&#xff08;子窗口&#xff09; window.parent.po…

第一次参加CSDN周赛,这体验很难说···

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSDN周赛】 本篇文章目录&#x1f30f;前言&#x1f30f;一、勾股数&#x1f338;题目描述&#x1f338;题解&…

Android Activity 了解

前言 : Android 系统的四大组件分别是 1 活动 &#xff08;Activity&#xff09; 2 服务&#xff08;Service&#xff09; 3 广播接收器&#xff08;Broadcast Receiver&#xff09; 4 内容提供器 &#xff08;Content Provider&#xff09; 其中活动是所有安卓应用程序的…

rust闭包(Closure)

闭包(Closure) 闭包在现代化的编程语言中普遍存在。闭包是一种匿名函数&#xff0c;它可以赋值给变量也可以作为参数传递给其它函数&#xff0c;不同于函数的是&#xff0c;它允许捕获调用者作用域中的值。Rust 闭包在形式上借鉴了 Smalltalk 和 Ruby 语言&#xff0c;与函数最…

无聊小知识.04 以下代码会输出什么?

1、前言 今天同事给我看了一段代码&#xff0c;然后这段简单的代码&#xff0c;我却陷入了沉思。 2、代码 String string ""; try {string "123";return string; } finally {string "234"; } 这段代码&#xff0c;string最终是“123”还是…

【SpringSecurity】学习笔记(一)

学习笔记一、SpringSecurity 简介二、创建测试项目2.1、引入依赖2.2、测试三、SpringSecurity基本原理3.1、过滤器链3.1.1、FilterSecurityInterceptor3.1.2、ExceptionTranslationFilter3.1.3、UsernamePasswordAuthenticationFilter3.2、过滤器加载过程3.3、两个重要的接口3.…

看完这篇,保证你学网络安全一帆风顺!

网络安全入门很难吗&#xff1f;总有人抱怨黑客入门太难了&#xff0c;然后仔细了解之后却发现&#xff0c;觉得难是因为看的视频教程都不是配套的&#xff0c;都是这里学一点、那里学一点&#xff0c;脑子里连基本的框架都没有。更过分的是&#xff0c;有的人学了好几个月&…

uniapp - 微信小程序端引入 Echarts 图表及使用详细教程,简单快速的解决方案(拒绝复杂的过程,附带详细的使用示例保姆级教程)

效果图 现在各种平台的文章都太乱了,基本上实测无效。。。 帮你在uniapp开发中,微信小程序平台端使用 echats 图表的详细教程,快速并且简单轻松搞定。 下面是最后的运行结果,随便用的一个图表进行展示,图表更多用法详见文档!

用正则去掉所有HTML标签,保留指定标签

保留单个&#xff0c;如保留img标签&#xff1a;str.replace(/]*>/ig,) 保留多个&#xff0c;如保留strong、em、p、u标签&#xff1a;str.replace(/]*>/ig,) 清除所有标签&#xff0c;就是去掉保留指定标签的部分了&#xff1a;str.replace(/]*>/g, ) replace 正则匹…

(学习日记)2023.4.18

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

java基础——迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类

迭代器&#xff0c;数据结构,List,Set ,TreeSet集合,Collections工具类 第一章 Iterator迭代器 1.1 Iterator接口 在程序开发中&#xff0c;经常需要遍历集合中的所有元素。针对这种需求&#xff0c;JDK专门提供了一个接口java.util.Iterator。 想要遍历Collection集合&…