zoukankan      html  css  js  c++  java
  • 任意给定一整数数组,求两个元素之差的最大值和数组中出现次数最多的数

    要求:不允许使用库函数及外部库,不允许使用现成的排序算法和哈希算法函数

    1、两个元素之差的最大值

         private static void GetMaxMin(int[] arrys)

            {

                //int[] arrys = new int[] { 3, 5, 1, 6, 9, 8, 4, 7, 2 };

                int max = arrys[0];

                int min = arrys[0];

                for (int i = 0; i < arrys.Length; i++)

                {

                    if (arrys[i] > max)

                        max = arrys[i];

                    if (arrys[i] < min)

                        min = arrys[i];

                }

                Console.WriteLine("Max:{0}Min{1},差为{2}", max, min, max - min);

            }

            //2、数组中出现次数最多的数

            /// <summary>

            /// 得到去重复的数组

            /// </summary>

            /// <param name="arrys"></param>

            /// <returns></returns>

            private static int[] GetNewArry(int[] arrys)

            {

                for (int i = 0; i < arrys.Length; i++)

                {

                    for (int j = i + 1; j < arrys.Length; j++)

                    {

                        if (arrys[i] == arrys[j])

                            arrys[i] = 0;

                    }

                }

                List<int> list = new List<int>();

                for (int k = 0; k < arrys.Length; k++)

                {

                    if (arrys[k] != 0)

                        list.Add(arrys[k]);

                }

                int[] arryNew = new int[list.Count];

                for (int n = 0; n < list.Count; n++)

                {

                    arryNew[n] = list[n];

                }

                return arryNew;

            }

     

            /// <summary>

            /// 得到出现最多次数的数

            /// </summary>

            /// <param name="arrysOld"></param>

            /// <param name="arrysNew"></param>

            /// <returns></returns>

            private static int GetMaxCountNum(int[] arrysOld, int[] arrysNew)

            {

                int count = GetMaxCount(arrysOld, arrysNew);

                int tmp = 0;

                for (int i = 0; i < arrysNew.Length; i++)

                {

                    for (int j = 0; j < arrysOld.Length; j++)

                    {

                        if (arrysNew[i] == arrysOld[j])

                        {

                            tmp++;

                        }

                    }

                    if (count == tmp)

                    {

                        return arrysNew[i];

                    }

                    tmp = 0;

                }

                return 0;

            }

     

            /// <summary>

            /// 得到出现最多的次数

            /// </summary>

            /// <param name="arrysOld"></param>

            /// <param name="arrysNew"></param>

            /// <returns></returns>

            private static int GetMaxCount(int[] arrysOld, int[] arrysNew)

            {

                int maxCount = 0;

                int count = 0;//次数

                //int[] arrysCount = new int[arrysNew.Length];

                for (int i = 0; i < arrysNew.Length; i++)

                {

                    for (int j = 0; j < arrysOld.Length; j++)

                    {

                        if (arrysNew[i] == arrysOld[j])

                        {

                            count++;

                        }

                    }

                    //arrysCount[i] = count;

                    if (count > maxCount)

                    {

                        maxCount = count;

                    }

                    count = 0;

                }

                return maxCount;

            }

     

            /// <summary>

            /// 得到数组中的最大数

            /// </summary>

            /// <param name="arrys"></param>

            /// <returns></returns>

            private static int GetMaxNum(int[] arrys)

            {

                int max = arrys[0];

                for (int i = 0; i < arrys.Length; i++)

                {

                    if (arrys[i] > max)

                        max = arrys[i];

                }

                return max;

            }

     

            /// <summary>

            /// 得到数组中零出现的次数

            /// </summary>

            /// <param name="arrys"></param>

            /// <returns></returns>

            private static int GetMaxCountIsZero(int[] arrys)

            {

                int count = 0;

                for (int i = 0; i < arrys.Length; i++)

                {

                    if (arrys[i] == 0)

                        count++;

                }

                return count;

            }

     

            /// <summary>

            /// 克隆一个整型数组

            /// </summary>

            /// <param name="arrys"></param>

            /// <returns></returns>

            private static int[] CloneArry(int[] arrys)

            {

                int[] arrysNew = new int[arrys.Length];

                for (int i = 0; i < arrys.Length; i++)

                {

                    arrysNew[i] = arrys[i];

                }

                return arrysNew;

    }

    在招聘网上看到的题目,随便坐了下,可能还有bug,望大家指出!!

  • 相关阅读:
    Kotlin系列之序列(Sequences)源码完全解析
    JVM不稳定参数
    akka共享内存
    内存占用过高 kill 调整mysql内存占用
    系统级监控
    linux环境变量
    进程启动,崩溃异常日志++++
    JVM致命错误日志(hs_err_pid.log)分析
    批处理之坑爹的感叹号和变量延迟扩展
    kafka消费端
  • 原文地址:https://www.cnblogs.com/cyan/p/1606004.html
Copyright © 2011-2022 走看看