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,望大家指出!!

  • 相关阅读:
    Apache ab压力测试时出现大量的错误原因分析
    图解linux下的top命令
    [转载]几种切词工具的使用(转)
    大规模中文文本处理中的自动切词和标注技术
    [转载]盘点:94版《三国演义》演员的今昔对比照
    搜索引擎切词详解
    iphone-命令行编译之--xcodebuild
    Appium IOS 自动化测试初探
    手把手教你appium_mac上环境搭建
    Appium-doctor 检测Xcode未安装问题
  • 原文地址:https://www.cnblogs.com/cyan/p/1606004.html
Copyright © 2011-2022 走看看