摘要:
作者:陈太汉一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值 比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2,4}{6} m=3 所以m的最大值为3算法 原理的思想是将大问题转换成小问题。就{3,2,4,3,6}的操作步骤: 第一步:想将数组递减排序得{6,4,3,3,2},求出数组中所有数的和m=18,第一个最大的数b=6, m/b=3余数为0,当除数为1,余数为0时终止。当余数不为0时,转到第三步。当余数为0时将数组划分为{6},{4,3,3,2}两个。把{4,3,3,2}看成一个新的数组。 第二步. 阅读全文
摘要:
作者:陈太汉单词翻转问题是个大公司常考的一个面试题,在网上看了不少实现方法,感觉都有瑕疵,在下今天又无聊一次,自己写了两种实现方式一个是简洁版,一个是效率版简洁版当然是简洁明了,思路清晰,很容易看懂,但是效率上有待改进,等改进之后发现发现就不是那么好理解了,所以就有了效率版,个人还是主张简洁版,它看起来实在是舒服,让我很是满意。为什么说简洁版效率有瑕疵呢?就是因为方法InvertWord的参数是值传递,就会不断的有变量构造和析构,效率版就是解决这个问题,改为引用传递,但是引用传递又产生了另一些问题。看一下代码,你会懂的。//将一句话翻转// I am a student--> stude 阅读全文
摘要:
* 由于字符串的相加会产生了一个新的字符串,当有多个字符串相加时,就会不断的有字符串构造出来和被析构掉,当然这是相当耗资源的。* 所以就有了StringBuilder类。* StringBuilder的实现方式是这样的,默认分配16个字节的空间,如果追加的字符个数超过当前分配的空间,* 系统就重新分配一块两倍的空间,16,,32,64,128,256....。再把字符串的值拷贝到新的内存中。以前的内存等着垃圾回收器回收。* 这样也会有大量的内存被分配和回收。* 但StringBuilder可没有那么笨,它可以分配指定大小的连续内存用于存储字符串,如果指定的内存大小刚好容纳所有的字符串,* 那就 阅读全文
摘要:
作者:陈太汉《火车运煤问题》分析 题目内容: 你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市? 这是我在《酷壳》看到的一个面试题,主要是被陈浩的几句话给吸引了,还有就是哥比较喜欢思考,想证实一下哥是否适合做程序。 火车运煤问题分析 表面上看这个问题很难实现,因为火车最多只能载1000吨煤,而行驶1000公里刚好把火车上的1000吨煤烧光。等我们认真思考之... 阅读全文
摘要:
using System;using System.IO;namespace Utils{ public class IOHelper { public IOHelper(); public static bool CopyDir(DirectoryInfo fromDir, string toDir); //复制目录 public static bool CopyDir(string fromDir, string toDir); //复制目录 public static bool CreateDir(string dirName); //创建目录 public static bool Cr 阅读全文
摘要:
作者:陈太汉DataTable转换成IList(二)DataTable转换成IList第一版出来之后,昨晚总是觉得有很多地方可以改进,所以今天一大早来就把它给修订了,当然还有一些地方可以改进,等我以后编码能力提高之后再出第三版吧,第二版应该够用using System;using System.Collections.Generic;using System.Reflection;using System.Collections;using System.Data;namespace JSONTest{ public class TableToList<T> where T : n 阅读全文
摘要:
作者:陈太汉DataTable转换成IList在用C#作开发的时候经常要把DataTable转换成IList;操作DataTable比较麻烦,把DataTable转换成IList,以对象实体作为IList的元素,操作起来就非常方便。注意:实体的属性必须和数据库中的字段必须一一对应,或者数据库字段名.ToLower().Contains(实体属性名.ToLower()) 数据类型暂时至支持int、string、DateTime、float、doubleusing System;using System.Collections;using System.Collections.Generic;us 阅读全文
摘要:
作者:陈太汉C# 验证码多功能注册码,注册码可以完全自定义,全部都是动态的,包括字体的颜色,大小,样式,还有内容using System;using System.Drawing;namespace SecurityCode{ public class DrawMethod { /// <summary> /// 画图 /// </summary> /// <param name="content"></param> /// <param name="size"></param> / 阅读全文
摘要:
他是一个用户自定义控件;他只有1174个字节;他能兼容任何浏览器;他弹出来是如此的优雅,隐藏是那么自然;他是如此的精致,绝对没有任何性能影响;最重要的是他是陈太汉开发的;文件名:TipControl.ascx<%@ Control Language="C#"%><div id="divTip" style="width:300px;height:100px;position:absolute;top:240px;font-size:15px; border:#c60000 thin solid;display:none;&qu 阅读全文
摘要:
不就是迭代模式吗,就是第一个,上一个,下一个,最后一个,当前元素吗?用得着搞几个接口弄出五六个类出来吗?而且元素还是Object类型,装箱,拆箱的,真要命,用泛型吧有时候在想,设计模式是用来欣赏的、用来学习的,真正在用的时候根本用不上,那么多接口和类,调来调去的不好资源的吗?真正在用的时候应该是精简版的设计模式,你也可以说他不是设计模式,毕竟嘴是你的。如果你的方法参数为基础类型,没有用out或ref,C#就会为你产生一个变量,因为基础类型是值拷贝当然基础类型分配在栈中,分配速度较快,而且能很快回收,栈的容量是有限的吗,能不很快回收吗。栈是先进后出,比如一个方法中的基础类型变量,先定义的先进栈, 阅读全文