C#.NET面试题汇总系列九:常见算法
2022/3/1 17:24:33
本文主要是介绍C#.NET面试题汇总系列九:常见算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
菲波纳契数列
要点:递归的使用,终止条件
有一列数1,1,2,3,5,........求第30个数
public static int Foo(int i) { if (i <= 0) return 0; else if (i > 0 && i <= 2) return 1; else return Foo(i - 1) + Foo(i - 2); }
冒泡排序
要点:第二个循环的开始位置
int temp = 0; for (int i = 0; i < arr.Length-1; i++) { for (int j = i; j < arr.Length-1; j++) { if (arr[i] > arr[j+1]) { temp = arr[i]; arr[i] = arr[j + 1]; arr[j + 1] = temp; } } }
求N的阶乘
要点:递归,终止条件(1x2x..),如果n为2或1那就是本身
public static int Fun(int i) { if (i == 1) { return 1; } if (i == 2) { return 2; } return i * (Fun(i - 1)); }
产生一个指定长度的int数组并随机插入数
要点:int[] 数组没有检查的方法,ArrayList有Contains方法
public static void Fun(int len) { int[] arr = new int[len]; ArrayList myList = new ArrayList(); Random rad = new Random(); while (myList.Count < len) { int num = rad.Next(1, len + 1); if (!myList.Contains(num)) { myList.Add(num); } } for (int i = 0; i < len; i++) { arr[i] = (int)myList[i]; } myList.Sort(); Console.WriteLine(myList[len - 1]); }
不使用第三方变量来交换两个变量的值
方法一:算术运算
int a = 10,b = 12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=b+a; //a=12;b=10
方法二:位运算,通过异或运算也能实现变量的交换
int a = 10, b = 12; //a=1010^b=1100; a = a ^ b; //a=0110^b=1100; b = a ^ b; //a=0110^b=1010; a = a ^ b; //a=1100=12;b=1010;
方式三:变量本身交换数值
b = (a + b) - (a = b);
查找一个int数组中的最大最小值
static void Main(string[] args) { int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; int max = arr[0], min = arr[0]; for (int i = 0; i < arr.Length; i++) { if (arr[i] >= max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } } Console.WriteLine(string.Format("max{0},min{1}", max, min)); }
判断字符串是否为回文字符串
static void Main(string[] args) { string str = "abcdcba"; Console.WriteLine(Fun(str)); } private static bool Fun(string str) { for (int i = 0; i < str.Length/2; i++) { if (str[i] != str[str.Length - i - 1]) return false; } return true; }
这篇关于C#.NET面试题汇总系列九:常见算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#