把数组中的奇数移到前面,偶数移到后面

FEniCS学习笔记01:centos7下通过conda安装FEniCSx0.7 2023年版本的Fenicsx0.7,官网推荐使用conda命令安装集成好的Python包,因此我们的安装思路是先安装Anaconda,再按照官网步骤安装Fenics。 阅读详情

今天电话面试的时候被问的一道题目,当时没想出来,面完想了一下就想出来了。

题意:一个数组中放着若干奇数、偶数,把奇数放到前面,偶数放到后面。要求:不新开数组,不改变奇数之间前后关系、偶数之间前后关系。

思路:从数组头部开始找奇数,对于第i个奇数,假设其在数组中下标为index,可以得到的是index >= i,那么先记录下该数字x,然后将[i, index - 1]的数字往后移一位,再将数组中的第i位置为x

代码:

    public static void main(String[] args) {
        int[] a = new int[] { 2, 4, 1, 5, 2, 10, 8, 7, 0, 1};

        int i = 0, temp;
        for (int index = 0; index < a.length; index++) {
            if ((a[index] & 1) == 1) {
                temp = a[index];

                for (int j = index; j > i; j--) {
                    a[j] = a[j - 1];
                }

                a[i] = temp;

                i++;

            }
        }

        for (i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }

    }

输出:

这样做的算法复杂度在O(n^2),直接新建一个数组的时间复杂度O(n)

 

基于CNN-LSTM融合模型的环卫车动态称重算法研究:从频率感知到精准质量估计 摘要: 针对环卫车辆动态称重需求,本研究提出一种基于CNN-LSTM融合网络的频率分析方法。通过在实验室构建振动频率采集系统,获取不同载重下的结构响应数据,经MATLAB进行信号处理和特征提取后,建立频率-质量的非线性映射模型。实验表明,该算法在静态和模拟动态场景下平均绝对误差小于1.5%,显著优于传统方法,为环卫车智能化管理提供了高精度实时称重方案。 关键词: 动态称重;深度学习;频率分析;CNN-LSTM;MATLAB。 阅读详情

相关推荐

别再被骚扰了!手把手教你彻底卸载阿里云盾(安骑士)并封禁其IP段

本文详细指导如何彻底卸载阿里云盾(安骑士)并封禁其IP段,帮助用户夺回服务器控制权。从识别监控组件到执行官方卸载脚本,再到手动清理残留文件和配置iptables规则,确保完全阻断云盾通信。适用于追求极致性能或需要完全自主控制的环境。

weixin_42525551的博客 451

数据结构算法题/将数组中元素奇数排在前面偶数在后面(前面奇数和后面的偶数分别有序)

一个无序整数数组,对它排序,使其前半部分都为奇数有序,后半部分为偶数有序。 (1)方案1 O(n^2) 基本想法:利用插入排序算法,对奇偶子序列分别插入排序。用两个变量把整个数组分割为三个部分,第一个部分为奇数有序子序列,第二部分为偶数有序子序列,第三部分为未排序子序列。使用两个变量进行分割,mid 指向偶数有序子序列的一个元素,end 指向未排序子序列(等待一个个插入前面的奇数有序子序列或偶...

fkyyly的专栏 2866

头歌平台-人工智能导论实验(人脸识别)

答案仅供参考,自己动手丰衣足食!!!

qq_52119136的博客 3026

数组排序,奇数在前,偶数在后(二)

第二种解法: 基本思想:先对数组进行分割,分割为两部分:奇数序列和偶数序列, 再利用任何一种排序算法排序。 #include <iostream> #include <algorithm>using namespace std;void PrintArr(int *arr, int n) { for (int i = 0; i < n; i++) { cout << ar

每天进步一点点 2561

平面变压器PCB绕组设计实战:从原理到布局的工程考量

本文深入探讨了平面变压器PCB绕组设计的工程实践,从基础原理到布局优化,涵盖了电流密度、层间绝缘、绕组拓扑结构等关键参数。通过实战案例分享,解析了高频应用中的集肤效应、邻近效应等挑战,并提供了热管理和EMC优化的实用技巧,助力工程师在服务器电源、车载充电器等空间敏感场景实现高效设计。

weixin_42666036的博客 453

从零开始搭建属于自己的语音识别API服务器(ASRT开源项目)

材料准备 云服务器 (本人使用的的是阿里云服务器 Ubuntu(Linux操作系统)) 环境搭建 1. Python 3.7 话不多说直接上代码 sudo su yum -y install git yum -y install gcc yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-deve

zhi_qian的博客 5647

js将数组里的数重新排序,奇数降序排在前面,偶数升序排在后面(两种方式);

这个是之前的一个面试题~ 原数组如下: vararr=[12,9,2,31,11,23,17,24]; 使用数组的sort方法,将数组按要求排列: var arr=[12,9,2,31,11,23,17,24]; var arr1=arr.sort(function(a,b){ // 如果是a是偶数,b是奇数 if(a%2==0&&b%2!=0){ return 1;//a,b之间交换 } // 如果是a是奇数,b是偶数 if(a%..

wocao2dai的博客 1461

ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...

m0_37957160的博客 2075

12.调整数组顺序,使得奇数在前,偶数在后

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解法1:创建一个新数组保存偶数;删除原数组中对应的偶数位置;新数组放在原数组的后面 class Solution{ public: void reOrderArray(vector<int>...

heda3的博客 872

道威棱镜的设计参考

道威棱镜的设计参考

weixin_72050316的博客 379

Debezium报错处理系列之二十一:Unable to connect: Communications link failure.The driver has not received any

Debezium报错系列之二十一:Unable to connect: Communications link failure.The driver has not received any。

zhengzaifeidelushang的博客 547

如何重新排列数组使得数组左边为奇数,右边为偶数

给定一个存放整数的数组,如何重新排列数组使得数组左边为奇数,右边为偶数?要求:空间复杂度为O(1),时间复杂度为O(n); 代码#include <iostream> using namespace std; void Swap(int &a,int &b) { int temp = a; a = b; b = temp; } void ReverseArray(int a

赏星乐事 1800

[QMT和ptrade量化交易小白入门]-112、小市值热点概念交易策略,回测5年20倍

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1080

CExercise_07_1指针和数组_7给定一个整数数组,将该数组中所有奇数移到数组的前面,偶数移到数组的后面

冰凌的博客 124

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

将数组的奇数移到前面偶数到后面&&输出链表的倒数第k个结点

将数组的奇数移到前面偶数到后面,即采用前面和后面往中间去遍历,如果满足条件则交换的算法。 关键是对于交换满足条件的判断,采用函数指针。 #include #include using namespace std; bool Isodd(int n){ if(n%2 == 1) return true; else return false; } void reorder(int

ustcyue的专栏 619

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[牛客剑指offer]调整数组顺序使奇数位于偶数前面

链接:https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路:时间换空间,另开一个数组保存偶数,扫描原数组,把偶数存入临时数组中,...

weixin_30399055的博客 99

调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 public void reOrderArray(int[] array) { if (array == null || array.length == 0) return; int n =...

weixin_39590058的博客 94

将一个数组中的偶数放前面奇数放后面

一个数组由若干个整数组成,现要求:将偶数放到前面,奇数放到后面,并输出数组。提供了两种PYTHON的解法和一个RACKET解法。

计算机科学、人工智能、数据分析和大数据方向的研发和教学。 3995

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 提示: 1 <= nums.length <= 50000 1 <= nums[i] <= 10000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/diao-zheng-shu

大白能的博客 173

剑指offer-调整数组顺序使奇数位于偶数前面

题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 整体思路就是寻找一个偶数串,当我们找到这样一个偶数串之后,把这个偶数串后面的奇树移动到这个偶数串的最前面,偶数串的所有数字依次后移。 设置两个指针I和J,控制i在连续的偶数串之前,J在连续的偶数串的最后一位 。当扫描完...

不愿透漏姓名的王建森的博客 151

NC77.调整数组顺序使奇数位于偶数前面

牛客NC77.调整数组顺序使奇数位于偶数前面,并且要保证奇数与奇数、偶数与偶数之间相对位置不变。

写博客记录分享学习笔记 169

将数组中元素排列为奇数在前偶数在后

处理策略是定义两个指针pHead,pTail并令其初始指向数组头节点和尾节点。pHead从前往后找应该放在尾部的偶数节点,pTail从后往前找应该放在头部的奇数节点,若pHead位于pTail之前则交换二者内容,否则结束处理过程。 处理流程如下图所示。       对于用例:   1,2,4,5,3 处理结果为:1,3,5,4,2    下面给出在java语言下的实现:

技术杂谈 5509

调整数组顺序使奇数位于偶数前面(第13题)

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 ac:100% 思路:从中向右遍历数组,记录下最左边偶数的下标n,从这个偶数开始,遇到一个奇数(下标m),则n到m-1全部向右移动一位,m位置的奇数到n,如此执行,直到循环结束 public class S...

玉爷的博客 100

Java-经典代码题-1、给定两个整型数组, 交换两个数组的内容.2、给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面.

1、给定两个整型数组, 交换两个数组的内容. package gyy; import java.util.Arrays; public class Main{ public static void main(String[] args) { int arr1[]= {9,8,7,6,5,4,3,2,1}; int arr2[]= {1,2,3,4,5,6,7,8,9}; int te...

weixin_44378053的博客 445

仅使用一个数组,将数组中的偶数放在前面,奇数放在后面

#include<iostream> #include<iomanip> #include<ctime> using namespace std; int main () { const int N=15; int a[N],i,j,n=10; cout<<"请输入十个整数"<<endl; for(i=0;i<10;i++) cin>>a[i]; i=0;//第一个元素 ...

weixin_56509786的博客 645

【剑指offer】调整数组顺序使奇数位于偶数前面

一、题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、思路分析及代码实现 方法一:借助队列分别存储奇数和偶数 两次遍历数组,一次对数组中元素分奇数和偶数,一次将分组后的元素返回到数组 存放分组后的数据可以是数组、链表等。 import java.util.Que...

fengxue0651的博客 166
上一篇: 解决多次add fragment,属性fitsSystemWindows无效的问题
AngrySword
博客等级 码龄9年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值