- 浏览: 127559 次
- 性别:
- 来自: 上海
最新评论
-
lliiqiang:
最简单的显示 存储分离,有的时候错别字与错误数据存储兼容。还有 ...
关于软件可扩展性与代码防御性编程的一点思考 -
bmqnc:
cqh520llr 写道sb,不帖代码,以后人家搜索到了浪费人 ...
今天自己做了redo-undo功能 -
cqh520llr:
我也觉得,代码风格和不定性样式太多了,
编码风格不取决于自己,取决于领导班子和现有代码 -
cqh520llr:
sb,不帖代码,以后人家搜索到了浪费人家时间,而且这个代码贴出 ...
今天自己做了redo-undo功能 -
shiqicai:
太隐晦,看不懂。
康神与顿神
文章列表
这题不难,用bfs,bfs的时候注意剪一个枝就行了。代码如下:
import java.io.*;
import java.util.*;
import java.util.regex.*;
//photo,print
public class ABCPath {
public int length(String[] grid) {
int ans=0;
int row=grid.length;
int col=grid[0].length();
char[][] chs=new char[row][];
int[][] bchs=new ...
这个srm的500pts要讲一下,这题主要关键点在于要将target中的数组快速定位到离current最近的前后n个数中,纯暴力的做法是会超时的。这题还想了很久,1000pts我觉得简单,而500pts这次反而比1000pts要难。
看500pts的代码:
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class StepperMotor {
public int rotateToNearest(int n, int current, int[] target) {
lo ...
这题很简单,用贪心的。最基本的想法就是任务建立的时间是不能省的,因此应该想办法尽量让这些时间在任务运行的时候被做掉。因此每次可以挑那些任务运行时间长,而建立时间又短的任务来搞。
代码如下:
import java.io.*;
import java.util.*;
import java.util.regex.*;
//srm 231
public class ProgramSchedule {
public int schedule(int[] A, int[] B) {
int ans=0;
Sche[] schs=new Sche[A.length];
...
这题如果用暴力的方法的话,其实是求排列组合的值。
但是要注意的是做连乘积的时候会发生溢出,因此这里可用BigInteger 来做这些操作。
代码如下:
import java.io.*;
import java.util.*;
import java.util.regex.*;
import java.math.*;
public class TreePlanting {
public long countArrangements(int total, int fancy) {
long ans=0;
int plain=total-fancy+1;
B ...
这题很简单,只要会灵活的运用java的库函数即可,当然,库函数的复杂度事先也是应该要有所知道的。
代码如下:
public class ImageSteganography {
public String[] encode(String[] img, String message) {
String[] ans=null;
String encodeMes=encodeMessage(message);
String encodeImg[]=new String[img.length];
for(int i=0;i<img.length;i++) ...
这题蛮简单的,就是求符合条件的最大子集,很简单。
代码如下:
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class AutoMarket {
public int maxSet(int[] cost, int[] features, int[] fixTimes) {
int n=cost.length;
Car cars[]=new Car[n];
for(int i=0;i<n;i++){
cars[i]=new Car(cost[i ...
treeviewer中在设置内容提供器或者标签提供器时会自动刷新该树,因此不用再去调用树的refresh方法来刷新,这点让我郁闷了很久。项目中节点数很多,多达好几千,如果动不动就刷新一次,整个界面非常卡(UI线程在刷界面),因此这一点很重要。
不过有一点很奇怪,调用一次的设置标签器操作,依然会刷新树两次,这点比较诡异(treebiewer的源代码我看了,确实在里面会调用refresh操作)。这一点需要再研究一下。
这题仔细分析一下还是蛮简单的,利用正则表达式来做。正则表达式分为四种:a+,b+,a+b+,其它(这种正则表达式比较复杂)但没必要去判断它,直接贴代码了:
public class DerivationDisplay {
public String[] getDerivation(String input) {
String[] ans=null;
String p1="a+";
String p2="b+";
String p3="a+b+";//a+(a+|b+)b+
LinkedL ...
jdom版本变化,其中有的版本的XMLOutputter中含有setIndent方法,有的已经没有了,具体的变化没在jdom的网站上查到,关键是jdom没有接口变化的一个list。
还有一个问题是我在调程序的时候发现一个非常难搞定的问题,就是当发生这个问题的时候抛出了NoSuchMethodError,注意是Error,不是exception,所以虽然在程序中发生了错误,程序中也有做处理,但他们catch的是exception,所以即便是debug,也很难查到,因为程序流程不能被想象中的跳转到catch那个位置,所以只能将catch那个地方的参数由exception改为throwable ...
SRM 479 Div2
- 博客分类:
- 算法
第一题,简单,不做任何说明,直接上代码:
public class TheAirTripDivTwo {
public int find(int[] flights, int fuel) {
int ans=0;
int sum=0;
for(int i:flights){
sum+=i;
if(sum<=fuel)
ans++;
else
break;
}
return ans;
}
}
第二题,需要想一下,其实想通了还是蛮简单的,因为服务员无论如何都要服务他要服务的乘 ...
先上代码:
import java.io.*;
public class Test{
public static void main(String[] args){
String regex=File.separator+File.separator+File.separator+File.separator;
String constant="\\\\";
System.out.println(File.separator);
System.out.println(File.separator.equals("\ ...
“不要让人看不起,要怀揣着一份理想,要知耻”,可我发现现在也很无奈,举个例子吧,编码风格不取决于自己,取决于领导班子和现有代码-pub上看到的,我现在深有体会。。
原来是做一个类似清空回收站的功能。
即在回收站中清除某个节点后必须将该节点对应的redo undo操作删除,即从操作历史堆栈中将对应的记录删除。
开始觉得operation history的dispose函数可能能实现这样的功能,看代码的注解说当operation的context与指定的context相符合时从操作堆栈删除记录,后半句关于引用的那句话一开始没看懂。
于是自定义了CustomUndoContext,然后利用dispose函数过滤,但是好像并没有删除。
于是看这部分的源代码,如下:
public void dispose(IUndoContext context, bool ...
select是根据Viewer的input数据来进行筛选的,并且会循环的获取每个元素的子节点。但是一个陷阱在于:如果筛选的时候父节点被筛选掉了(返回值为false),则子节点就不会再被筛选了。因此,有时候为了正确的进行筛选,必须对父节点进行递归调用,看是否子节点中有可以显示的项。如果子节点可被显示,则父节点也应被显示(返回true值),否则返回false。
不过这里我有两点担心:1.当父节点底下确实没有符合的数据时这样做时间花费是值得的。
2.但是,如果父节点下子节点有部分数据符合,那么对子节点过滤时时是否会与原来的父节点中已经进行的操作进行了重复操作,造成性能上的损失和不必要?
对于第二 ...