代码改变世界

去掉字符串中重复字符

2011-09-07 11:57 by DylanChan, 170 阅读, 0 推荐, 收藏, 编辑
摘要:view sourceprint?01class Program02{03static void Main()04{05//方法一06string inputString = "aabbcc";07char[] strArray = inputString.ToCharArray();08List<char> stringList = new List<char>();09foreach (char eachChar in strArray)10{11if (!stringList.Contains(eachChar))12{13stringList 阅读全文

C#继承中的静态构造函数和base关键字使用

2011-09-07 11:10 by DylanChan, 865 阅读, 0 推荐, 收藏, 编辑
摘要:静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。在使用静态构造函数的时候应该注意几点: ◇ 静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。 ◇ 是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。 ◇ ... 阅读全文

a=10,b=15,在不用第三方变量的前提下,把a,b的值互换

2011-09-07 09:47 by DylanChan, 560 阅读, 0 推荐, 收藏, 编辑
摘要:class Program { static void Main(string[] args) { #region 方法一 int a = 10, b = 15; a = a + b; b = a - b; //b = (a+b)/2; a = a - b; #endregion #region 方法二 a = b + (b = a) * 0; //11... 阅读全文

求子数组的最大和

2011-08-28 11:30 by DylanChan, 432 阅读, 1 推荐, 收藏, 编辑
摘要:怀念对算法的酷爱,决定搜集网上的算法题目,并持之以恒练习之 /* 题目:求子数组的最大和 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为3, 0, -1, 5, -7, 9, -6, 4, -8, 10,和最大的子数组为10, 因此输出为该子数组的和10。 * 思路: 遍历数组,逐个相加,若和小于0,遍历从下一索引开始,并记下此时的索引(min... 阅读全文

查找数组中两个数,它们的和与数组中某个数字相等

2011-08-27 22:52 by DylanChan, 185 阅读, 0 推荐, 收藏, 编辑
摘要:怀念对算法的酷爱,决定搜集网上的算法题目,并持之以恒练习之 /* 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。 如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1,5,4,7,18,25,37,44 和数字25。由于7+18=25,因此输出7 和18。 */ class Program { static void Main(string[] args) { ... 阅读全文

排序算法

2011-08-27 09:46 by DylanChan, 226 阅读, 1 推荐, 收藏, 编辑
摘要:/// /// 冒泡排序 /// public void BubbleSort(int[] sortItems) { for (int i = 0; i = i; j--) { if (sortItems[j + 1] /// /// 冒泡排序(优化版) /// public void BubbleSortImproved(int[] sortItems) { int i, j, temp; bool flag = true; ... 阅读全文

C# 值类型和引用类型

2011-08-16 23:31 by DylanChan, 272 阅读, 1 推荐, 收藏, 编辑
摘要:我们都知道,c#的两大数据类型分别为值类型和引用类型。很多人或许闭着眼睛都能说出值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等,但是当被问及到二者之间的联系和区别,什么时候用struct什么时候用class时,就常常混淆不清了。为此,了解值类型和引用类型的本质差异就变的很有必要了。 ◆值类型直接存储其值,变量本身就包含了其实例数据,而引用类型保存的只是实例数据的内存引用。因此,一个值类型变量就永远不会影响到其他的值类型变量,而两个引用类型变量则很有可能指向同一地址,从而发生相互影响。◆从内存分配上来看,值类型通常分配在线程的堆栈(Sack)上,作用域结束时, 阅读全文

C# 方法参数传递之值传递和引用传递

2011-08-15 17:34 by DylanChan, 715 阅读, 1 推荐, 收藏, 编辑
摘要:1、大部分情况下,使用C#预定义的类型时,都是按照值传递使用的,比较复杂的情况是按照引用传递各种类型(值类型和引用类型),其实实质上的不同时对变量的操作方式上的不同2、在c#内置基本类型当中,除了object和string外,都是值类型。同时,自己定义的类,也都是引用类型。因为自定义类全部继承自System.Object3、在 C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。若要通过引用传递参数,请使用ref或out关键字。out与ref类似,唯一的不同是ref修饰变量时,变量需要初始化,而out修饰 阅读全文

线性表 - 双链表

2011-08-13 16:26 by DylanChan, 221 阅读, 0 推荐, 收藏, 编辑
摘要:线性表 - 单链表、线性表 - 顺序存储结构双向链表(double linked list):在单链表的每个结点中,再设置一个指向其前驱结点的指针域view sourceprint?01/// <summary>02/// 定义双向链表结点类03/// </summary>04public sealed class DoubleLinkedListNode<t>05{06//存放数据07private T tData;08//后继结点09private DoubleLinkedListNode<t> nNext;10//前继结点11private 阅读全文

线性表 - 单链表

2011-08-12 23:57 by DylanChan, 333 阅读, 0 推荐, 收藏, 编辑
摘要:线性表 - 顺序存储结构、线性表 - 双链表线性表顺序存储结构缺点:插入和删除时需要移动大量元素,耗费时间线性表链式存储结构: ◆ 用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的 ◆ 链表结构中,除了要存数据元素信息外,还要存储它的后继元素的存储地址线性表链式存储结构描述带头结点的单链表 空链表 实现代码 view sourceprint?01/// <summary>02/// 定义单链表结点类03/// </summary>04public sealed class SinglyLinkedListNode<t>05 阅读全文