摘要:
五、初始化与清理 1.用构造器确保初始化 在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造器,从而保证了初始化的进行。构造器的名称与类的名称相同。(“每个方法首字母小写”的编码风格并不适用于构 阅读全文
摘要:
四、控制执行流程 1.true和false 所有条件语句都利用条件表达式的真或假来决定执行路径。注意Java不允许我们将一个数字作为布尔值使用。 2.if-else 3.迭代 while、do-while和for来控制循环,有时会将它们划分为迭代语句。语句会重复执行,直到起控制作用的布尔表达式得到“ 阅读全文
摘要:
三、操作符 1.优先级 当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。程序员常常忘记其他优先级规则,所以应该用括号明确规定计算顺序。 当编译器观察到一个String后面紧跟着一个“+”,此时这个“+”意味着“字符串连接”,并且如果必要,它还要执行“字符串转换”。 2.赋值 阅读全文
摘要:
二、一切都是对象 1.用引用操纵对象 在Java中,一切都被视为对象,但操纵的标识符实际上是对象的一个“引用”。可以将这想象成遥控器(引用)来操纵电视机(对象)。另外,没有电视机,遥控器也可以单独存在。也就是说,你拥有一个引用,并不一定需要有一个对象与它关联。 2.必须由你创建所有对象 一旦创建了一 阅读全文
摘要:
一、对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言、同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆对象。 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须对该对象发 阅读全文
摘要:
前言 emmm。。。博客荒废了好久,总是有各种借口拖延,做的许多题都没有总结。买了一本厚厚的java书,所以决定先新开一个专题,逼迫自己坚持更新学习进度吧,同时也巩固一下知识,做个记录,不至于荒废时光。作为弱鸡的我只好坚持努力了,希望不断更! 阅读全文
摘要:
原题链接 题意一个数字x在1-n之间,现在猜数字,每次猜一个数字a,告知gcd(x, a)的答案,问最坏情况下需要猜几次 分析 考虑素数。当猜的数为一组素数的乘积时,就可以把这些素数都猜出来。那么答案就是总共的组数。接下来就贪心构造每一组,每次取最后一个,尽量和小的合并。 代码 阅读全文
摘要:
原题链接 题意 给你n个序列以及序列内元素个数,现要求进行归并,花费为归并过程中序列长度的和,给定一个花费T,问最小的k(每次归并的最大序列个数)为多少。 分析 首先应该想到的是二分。然后思考如何check呢。排序,贪心的来,每次都选最小的前若干个。要注意的是,最后k-1个当然是在最后一次归并,那么 阅读全文
摘要:
题目链接 参考 http://blog.csdn.net/KIJamesQi/article/details/52214990 题意 蛤蛤要从这岸去到对岸,河中有n块石头,现可以在河中添加一块石头,使得在单步跳跃中的最大值最小。 分析 dijkstra应用。开两维来表示路径中是否使用过额外的石头。d 阅读全文
摘要:
题目链接 参考自:http://www.cnblogs.com/oyking/p/4508260.html 题意 n个人,其中有k对双胞胎.现有m间房间,每间房间有容量ci问分配房间的方案数。 分析 设dp[i][j]为已经放满了第i个房间之后,所剩下的双胞胎的对数还有j对,然后对于i+1间房,我们 阅读全文