• C#算法面试题


    1.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。 

            static void GetArray()
            {
                int[] intArr = new int[100];
                int[] intArr2 = new int[100];
                for (int i = 0; i < 100; i++)
                {
                    intArr[i] = i+1;
                }
                Print(intArr);
                Random r=new Random();
                for (int i = 0; i < 100; i++)
                {
                    int j = r.Next(100 - i);
                    intArr2[i] = intArr[j];
                    intArr[j] = intArr[100 - i - 1];
                }
                Print(intArr2);
                //Array.Sort(intArr2);
                //Print(intArr2);
            }
              static void Print(int[] array)
            {
                foreach (int i in array)
                {
                    Console.Write(i + " ");
                }
    
                Console.WriteLine();
            }

    上面这种最优了,如果用

    int num=rnd.Next(1,101); 
    if(!myList.Contains(num)) 
    myList.Add(num); 
    10分应该能得到1分.


    2.一个int数组,将负数放在左边,正数移动在右边.0不动
            static void Sort(int[] array)
            {
                int count = array.Length;
                for (int i = 0, j = count - 1; i <= j; )
                {
                    while (array[i] <= 0) i++;
                    while (array[j] >= 0) j--;
                    if (array[i] > 0 && array[j] < 0 && i <= j)
                    {
                        array[i] = array[i] + array[j];
                        array[j] = array[i] - array[j];
                        array[i] = array[i] - array[j];
                    }
                }
            }

    不需要排序

    3.写一个函数计算当参数为N的值:1-2+3-4+5-6+7……+N 
            static int Sum(int[] array)
            {
                if (array.Length % 2 == 0)
                {
                    return  array.Length / 2*-1;
                }
               else
                {
                    return array[array.Length - 1] - array.Length / 2;
                }
            }

    不需要计算,请先观察即可



  • 相关阅读:
    Python打包之pyinstaller
    Python关于Pyqt
    Python撰写mail
    后台管理左侧菜单
    全选反选以及取消
    模态对话框
    Spark2.3.1版本全分布模式的安装与部署
    Kafka消息格式及多版本支持
    2019-11-18-plot作图
    剑指Offer-知识迁移能力53-59
  • 原文地址:https://www.cnblogs.com/birds-zhu/p/7542222.html
Copyright © 2020-2023  润新知