• 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;
                }
            }

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



  • 相关阅读:
    软件工程实践2020_个人作业 —— 软件评测
    软件工程实践2020_结对第二次作业 —— 某次疫情统计可视化的实现
    最受欢迎的 Git 分支工作流
    结对编程作业
    软件案例分析作业
    个人项目
    个人博客作业1
    第一次作业-热身!
    面向对象第三单元
    电梯作业总结
  • 原文地址:https://www.cnblogs.com/birds-zhu/p/7542222.html
Copyright © 2020-2023  润新知