2008-05-07

八皇后问题

关键字: 八皇后问题
上午闲着突然想起八皇后问题,上学时听过但没做过。反正没事,我就试着做下。一个上午在纸上画来画去,还是没有思路,都快崩溃了。到下午时候突然有点想法。试着打了一个满足条件的。看来不错,一鼓作气终于做出来了。做出来后发现其实是因为我对递归及回溯了解的不深,所以老理不清思路。核心的方法代码也就10行。不知道别人是怎么做的,希望高手给提供新的思路。      八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线 ...
2008-05-02

华为5分钟的编程题

关键字: java学习
去华为面试的一道编程题,要求五分钟写一个程序。把一个输入的数字完全逆转。比如输入25679,返回97652。我第一想法是用StringBuffer的reverse()一句话就写完了。eg:StringBuffer stb=new StringBuffer("3d3a555445");  stb.reverse();然后在先转成String类型,逆转后再转回去。结果面试官说,不能用Java的类库方法。顿时压力就有点大了。然后想先解析成字符用Vector来存储,可以知道长度,比数组简单,应该也能很快搞定。面试官看了下说还是不行,我就说我只是把Vector当数组来使用还不行?他说 ...
如果是用C,VB,C++等做成的应用程序,可以做成exe文件,双击就可以运行。但是用Java做成的就比较麻烦。Class和打包成Jar都得用命令来运行,而且需要安装Java环境。 不知道有方法可以做的像exe那样方便的没有? Jar文件的执行,Java环境配好有时候双击就能执行,有时候却不行,我至今想不明白是什么问题。写个批处理倒是都可以执行。经常遇到的问题是自己做个程序发给朋友运行时,发现朋友根本没Java环境或者根本就不知Java环境为何物。也不会配置环境变量。一步一步去教的话,又会觉的繁琐。一直想如果不用配置path怎么运行Java程序呢。那天不停的试,终于试出来了。 比如想运行x ...
2008-04-30

用Swing做的文件选择器

关键字: swing及事件处理
把我曾经遇到的一些问题跟大家分享下。好多问题教材上找不到答案,当时花费了好多时间,有些是网上查了好久查到的,有些是自己试了好久才明白的。 1)不管屏幕大小,始终把界面显示到屏幕固定比例的位置 2)文件选择器的使用,Java API上讲的太少了,就一个如何使文件选择器显示出来都困扰我很久,不知道大家刚接触时是否有同感。 3)事件处理怎么判断是哪个控件触发了事件。 4)选项卡的使用 5)滚动条的加入 6)鼠标左右键的区分       (5)和(6)的问题本程序中不包含。以后补上。     &n ...
2008-04-29

文件读写实例模板

关键字: java文件读写
在公司经常做一些文件分析及修改的工具。大多数的同事用vb,也有人用perl。我刚开始也学着用vb和perl来做。后来做了几次后发现,对于文件操作和字符串匹配Java更有优势。perl的正则表达式是很强大,但是一般的应用根本用不着那么深的分析。而vb对于字符串的操作实在是不敢恭维。举个简单的例子,判断一个字符串是否包含一个子串。java中只需要 String s=“Hello,World”; if(s.contains("llo")){}就可以了 而vb则需要先判断子串在全串中的位置,根据返回的值来判断是否包含。vb中连截取子串都感觉很繁琐。perl语言实在是太随心所欲了 ...
在上篇《难倒高手的五行代码》里边,有人说没有意义,在大多数真正编程中确实是没有意义。但是在面试或者考试中是难免遇上。毕竟面试不可能直接让你写个操作系统什么的。这是一般的看法。另一个角度上来说,我觉的有人在编程,也有人需要分析理论。两者都是不能少的。比如你的老师也许到公司编程不如你,但是要交学生你很难比上你的老师。况且你说没用也许因为你看不懂,如果能真正分析清楚这个,你会对Java语言的设计有一个新的了解。 昨天跟同学讨论了下。同学拿c++运行试了,结果产生了不同的结果。 int c=1;c=c++ 这句在Java中运行后c的值是1.但是在C++中是2。 int ...
  • 19:54
  • 浏览 (162)
  • 评论 (3)
2008-04-27

难倒Java高手的五行代码

关键字: 深入java语法
package U4; public class Pl1 { public static void main(String[] args) { int[] array=new int[5]; int k=2; array[++k]=k=6; System.out.println("k = "+k); for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } } //问题:k最后的值变为多少,数组是哪一位被赋值,且被赋值成多少 下一个问题也是关于“++”的 package U4 ...
  • 10:25
  • 浏览 (337)
  • 评论 (13)
zwm512327
搜索本博客
最新评论