首页 > 其他分享 >调整数组顺序使奇数位于偶数前面

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

时间:2023-06-12 19:46:37浏览次数:46  
标签:shu nums int 奇数 偶数 length 数组

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。

示例:

输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

屎山代码

class Solution {
    public int[] exchange(int[] nums) {
        int[] result = new int[nums.length];
        int count = 0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]%2!=0){
                result[count]=nums[i];
                count++;
            }
        }
        for(int j=0;j<nums.length;j++){
            if(nums[j]%2==0){
                result[count]=nums[j];
                count++;
            } 
            
        }
        return result;
    }
}

屎山写法2

class Solution {
    public int[] exchange(int[] nums) {
        int[] result = new int[nums.length];
        int start = 0,end = nums.length-1;
        for(int i=0;i<nums.length;i++){
            if(nums[i]%2!=0){
                result[start]=nums[i];
                start++;
            }else{
                result[end] = nums[i];
                end--;
            }
        }
        return result;
    }
}

标签:shu,nums,int,奇数,偶数,length,数组
From: https://www.cnblogs.com/xiaochaofang/p/17475941.html

相关文章

  • LeetCode/区间子数组个数
    给你一个整数数组nums和两个整数:left及right找出nums中连续、非空且其中最大元素在范围[left,right]内的子数组,并返回满足条件的子数组的个数1.遍历区间右端点+同时记录满足条件的左边点位数组中不能含有大于right的元素,且至少含有一个处于[left,right]区间的元......
  • 80 二维数组
    packagecom.fqs.test;importjava.util.Random;publicclasshello{publicstaticvoidmain(String[]args){//定义数组int[][]arr3={{1,2,3},{4,5,6,7,8}};//获取元素System.out.prin......
  • Arrays ——操作数组的工具类
    Arrays——操作数组的工具类方法名说明publicstaticStringtoString(数组)把数组拼接成一个字符串publicstaticintbinarySearch(数组,查找的元素)二分法查找元素publicstaticint[]copyof(原数组,新数组长度)拷贝数组publicstaticint[]copyofRange(......
  • HDU 2838 Cow Sorting(树状数组)
    题意:首先每次只能交换相邻的两头牛,并且最后要求升序排列,所以最后整个序列的逆序是0,每次交换只可以消除1个逆序。(令a[i]的逆序是从1到i-1比它大的数的个数。)思路:对于某个数,要把它变成有序的,那么很容易可以推算出公式就是它自身的逆序数乘自身的值再加上它的逆序数的和,自己算算看看。......
  • HDU 1394 Minimum Inversion Number(树状数组)
    题意:有一个n个整数的排列,这n个整数就是0,1,2,3...n-1这n个数(但不一定按这个顺序给出)。现在先计算一下初始排列的逆序数,然后把第一个元素a1放到an后面去,形成新排列a2a3a4...ana1,然后再求这个排列的逆序数。继续执行类似操作(一共要执行n-1次)直到产生排列ana1a2...an-1为止。......
  • HDU 3743 Frosh Week(树状数组+离散化)
    题意和思路:和POJ2299几乎一样...离散化+树状数组#include<cstdio>#include<queue>#include<cstring>#include<iostream>#include<cstdlib>#include<algorithm>#include<vector>#include<map>#include<string>#includ......
  • POJ 2352 HDU1541 Stars(树状数组)
    题意:二维平面给定n个点的坐标,然后要你输出每个点的“等级“。每个点的等级是它的左下放的点个数(包括正下放和正左方的点)。即要你输出对于每个点(x,y)来说,有多少点的坐标(xi,yi)满足xi<=x且yi<=y。思路:题目给出的坐标中已经是按y升序排列,那么其实只用考虑x轴,那么显然就是在前面的......
  • HDU 1556 Color the ball(树状数组区间更新)
    题意:中文题思路:一道区间更新,单点查询的裸题,用线段树做更好,因为还没看到所以这里用树状数组做。树状数组标记区间的方法很特别,比如给区间[a,b]内的气球涂颜色时,我们add(a,1),add(b+1,-1),单点查询的时候sum(x)就是x这个气球被涂色的总次数。建议先在纸上自己试一下看看,有点抽象,可以这......
  • 求一个不重复的数组
    packagecom.fqs.test;importjava.util.Random;publicclasshello{publicstaticvoidmain(String[]args){intweishu=6;int[]arr1=getNo(weishu);for(inti=0;i<weishu;i++){System.out.println("ar......
  • 14-7 shell脚本进阶数组
    一、数组的基本用法关联数组需要先声明[root@centos8~]#declare-adeclare-aBASH_ARGC=()declare-aBASH_ARGV=()declare-aBASH_COMPLETION_VERSINFO=([0]="2"[1]="7")declare-aBASH_LINENO=()declare-aBASH_SOURCE=()declare-arBASH_VERSINFO=([0]=&......