• 每日一题leetcode


    调整数组顺序使奇数在偶数前

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

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

    方法一:辅助数组

    建立一个数组,以及两个头尾指针指向数组的头和尾,两指针一起移动,遇到奇数前指针遇到偶数放后指针
    class Solution {
        public int[] exchange(int[] nums) {
            int temp[];
            int a = nums.length;
            temp = new int[a];
            int t1 = 0;
            int t2 = nums.length - 1; 
            for(int i:nums){
                if(i % 2 != 0){
                    temp[t1] = i; 
                    t1++;
                }else{
                    temp[t2] = i;
                    t2--;
                }
            }
            return temp;
    
        }
    }
    

      方法二:双指针

    初始化: i , j 双指针,分别指向数组 nums 左右两端;
    循环交换: 当 i = j 时跳出;
    指针 ii 遇到奇数则执行 i=i+1 跳过,直到找到偶数;
    指针 jj 遇到偶数则执行 j=j−1 跳过,直到找到奇数;
    交换 nums[i] 和 nums[j] 值;
    返回值: 返回已修改的nums 数组。

    class Solution {
        public int[] exchange(int[] nums) {
            int t1 = 0;
            int t2 = nums.length - 1;
            int temp = 0; 
            while(t1 < t2){
                while(t1 < t2 && (nums[t1] & 1) == 1) t1++;
                while(t1 < t2 && (nums[t2] & 1) == 0) t2--;
                temp = nums[t1];
                nums[t1] = nums[t2];
                nums[t2] = temp;
            }
        return nums;
    
        }
    }
    

      

  • 相关阅读:
    常用函数
    MySQL查询
    mysql的数据类型
    swoole简单demo测试
    linux下搭建lamp环境以及安装swoole扩展
    Linux下NAT模式和桥接模式的网络配置
    PhpStorm+xdebug+postman调试
    windows Apache 环境下配置支持HTTPS的SSL证书
    Yii2 restful api创建,认证授权以及速率控制
    Windows下开启composer镜像服务来安装yii
  • 原文地址:https://www.cnblogs.com/nenu/p/15122296.html
Copyright © 2020-2023  润新知