**1305 Pairwise Sum and Divide **
题目来源: HackerRank
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整:
1 | fun(A) |
给出数组A,由你来计算fun(A)的结果。例如:A = {1, 4, 1},fun(A) = [5/4] + [2/1] + [5/4] = 1 + 2 + 1 = 4。
**1305 Pairwise Sum and Divide **
题目来源: HackerRank
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整:
1 | fun(A) |
给出数组A,由你来计算fun(A)的结果。例如:A = {1, 4, 1},fun(A) = [5/4] + [2/1] + [5/4] = 1 + 2 + 1 = 4。
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了。问机器人最少需要有多少初始能量,才能完成整个旅程。
例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化如下3 1 0 3 7。
**1289 大鱼吃小鱼 **
题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
S[0…n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后半段一样。比如”abcabc”是对串,”aabbcc”则不是。
现在问题是给定一个字符串,判断他是否可以由一个对串旋转任意次得到。
最近开始阅读陆敏技先生在机械工业出版社出版的《编写高质量代码:改善C#程序的157个建议》一书,打算把其中涉及的所有的观点做一下总结和分析,用于总结和事后翻阅,如果有侵权请联系我删除。
在自己编写的代码中,应当尽可能地避免编写不必要的装箱代码。
1 | var str1 = "str1" + 9; |
第一句代码中,+ 连接时是将 值类型 int 转换为 引用类型 string 之后在进行 Concat 操作,故而性能更差。
装箱之所以带来性能损耗的原因是,装箱需要以下三个步骤:
频繁的进行字符串的拼接操作时,最好使用 StringBuilder,字符串的任何方法或者进行任何运算都会在内存中创建一个新的字符串对象。
1 | public void A2(object obj) |
Parse 和 TryParse 如果执行成功,他们的效率在一个数量级上,但如果执行失败,Parse 方法在转化失败的时候会引发异常,极大地消耗效率,而 TryParse 并不会。
业务需求中,int 类型的字段在无意义时在业务上为 null 比它的默认值 0 更为合适。
1 | static class Program |
开始做的时候也遇到了奇葩的情况、创智提供的dll只能在有UI的Winform、WPF上使用,WebForm、WPF、WebService完全没办法使用,Console在加上了[STAThread]的线程Attribute之后也可以成功调用,推测和dll使用MFC编写有关、但是各种引入MFC的dll均无果,一筹莫展之际把问题提到了交流群里,吾乐吧的牛总给出了可行的解决方案—-使用WCF来调用。
有了具体解决方案一切就顺风顺水了,但是完成程序之后又出现了奇葩的问题,部署到服务器也会出现外部组件异常的问题,本机调试可以部署却不行,很明显就是环境的问题了,由于dll为非托管dll,我们无法从错误中得到有效的错误信息,从环境下手尝试解决,虽然最终成功了,但是目前还并不清楚到底是因为什么,这里的经验是MSSOAP、MSXML、WebMatrix一定要装,如果还是不能成功运行可以考虑安装VS环境试试看。期待能有高手给出具体的解决之道。