当前位置: 代码迷 >> J2EE >> 编程小算法解决办法
  详细解决方案

编程小算法解决办法

热度:77   发布时间:2016-04-22 02:01:46.0
编程小算法
今天碰到一道面试题编写程序:输入一个数组,最大值和第一个交换,最小值和最后一个交换,最后输出数组。谁能帮忙写下主算法。

------解决方案--------------------
写的不好,只是参考
Java code
public class Test {        public static int[] change(int[] a){            int max = a[0];            int min = a[0];            for(int i=1;i<a.length;i++){                if(a[i]>max){                    max = a[i];                }                if(a[i]<min){                    min = a[i];                }            }            a[0] = max;            a[a.length - 1]= min;            return a;        }        public static void main(String args[]){            int[] b = {3,2,1,5,4};            int[] c = change(b);            for(int j=0;j<c.length;j++){                System.out.print(c[j]);            }        }}
------解决方案--------------------
感觉就是一楼实现的样子
------解决方案--------------------
一楼果断没有实现交换。我来改改。
Java code
public class Test1 {        public static int[] change(int[] a){            int max = 0;            int min = 0;            int temp;                        for(int i=1;i<a.length;i++){                if(a[i]>a[max]){                    max = i;                }                if(a[i]<a[min]){                    min = i;                }            }                        temp=a[0];            a[0] = a[max];            a[max] = temp;                        temp=a[a.length - 1];            a[a.length - 1]= a[min];            a[min]=temp;                        return a;        }        public static void main(String args[]){            int[] b = {3,2,1,5,4};            int[] c = change(b);            for(int j=0;j<c.length;j++){                System.out.print(c[j]);            }        }}
------解决方案--------------------
探讨
一楼果断没有实现交换。我来改改。

Java code



public class Test1 {

public static int[] change(int[] a){
int max = 0;
int min = 0;
int temp;

……

------解决方案--------------------
你先把最大最小的找出来 貌似这个很好找吧 然后就是个替换
------解决方案--------------------
三楼的有点问题,改成下面的即可
Java code
for(int i=1;i<a.length;i++){                if(a[i]>=a[max]){                    max = i;                }                if(a[i]<=a[min]){                    min = i;                }            }
------解决方案--------------------
java的话,用集合框架非常简单
------解决方案--------------------
做过这个题目....3L就是答案,不过要考虑下最小值是否为第一位...
------解决方案--------------------
探讨

一楼果断没有实现交换。我来改改。
Java code


public class Test1 {

public static int[] change(int[] a){
int max = 0;
int min = 0;
int temp;

for(……

------解决方案--------------------
探讨

一楼果断没有实现交换。我来改改。
Java code


public class Test1 {

public static int[] change(int[] a){
int max = 0;
int min = 0;
int temp;

for(……
  相关解决方案