zoukankan      html  css  js  c++  java
  • 网易前端2020笔试编程题--1.序列转换

    时间限制:C/C++ 1秒,其他语言2秒

    空间限制:C/C++ 256M,其他语言512M

    小易给你一个包含n个数字的数组。你可以对这个数组执行任意次以下交换操作:
    对于数组中的两个下标i,j(1<=i,j<=n),如果为奇数,就可以交换a_ia_j
     
    现在允许你使用操作次数不限,小易希望你能求出在所有能通过若干次操作可以得到的数组中,字典序最小的一个是什么。

    输入描述:
    第一行一个整数n;
    第二行n个整数
    a_1,a_2,..,a_n
    ,表示数组,每两个数字之间用一个空格分隔。
    输入保证

    输出描述:
    n个整数,每两个整数之间用一个空格分隔,表示得到的字典序最小的数组。


    解答思路:
    1.只要有任意两值和为奇数则可互相交换,则两值必为一奇一偶,再排序
    2.注意输入输出,字符串数组,字符串数字的相互转化

    const n = readline();
    const line = readline();
    let lines = line.split(' ');
    for (let i = 0; i < n; i++) {
        lines[i] = parseInt(lines[i]);
    };
    const odd = lines.some(item => (
        (item % 2) == 1
    ));
    const even = lines.some(item => (
        (item % 2) == 0
    ))
    
    if (odd && even) {
        lines.sort((a, b) => (a - b));
    }
    
    let newlines = lines.join(' ');
    console.log(newlines);


  • 相关阅读:
    最短路问题之Dijkstra算法
    最短路问题之Bellman-ford算法
    最小生成树之Kruskal(克鲁斯卡尔)算法
    二分图问题
    七桥问题与欧拉道路
    拓扑排序
    八连通块
    四连通检测
    USACO19DEC题解
    1206 雅礼集训D2题解
  • 原文地址:https://www.cnblogs.com/shengliuyang/p/12285293.html
Copyright © 2011-2022 走看看