java算法
文章平均质量分 76
hao小向
需求分析、产品设计
展开
-
交换整数的奇数位和偶数位
今天在一本书上看到一题:编写程序交换某个整数的奇数位和偶数位,使用指令越少越好(即位0与位1交换,位2与位3交换)。看过题目解析之后才发觉,这题要交换的是整数二进制的奇数和偶数位。按照一般的解题肯定会对每一位分别处理,即,将整数换成二进制,然后遍历一遍,交换奇数位和偶数位。这样效率不高,指令也不少。然后看大题目解析,感觉用位操作很棒,以下为解题思路:(1)先操作奇数位,把101010(即0原创 2015-08-31 20:11:50 · 1329 阅读 · 0 评论 -
笔试算法题--股票买卖问题(两次买卖)
题目:一个人一天只能进行最多两次买和两次卖,并且只有卖了才能继续买。问一天可以获得的最大收益,要采用时间复杂度低的实现。股票价格为:10,22,5,75,65,80.答案:87(10买,22卖,5买,80卖)动态规划解决方法:设置数组dp[i][j]表示:prices[i]买入到prices[j]卖出的收益。则得出dp[i][j]为0 12 -5 65 55 70 0 0 -原创 2015-09-23 11:27:54 · 6539 阅读 · 5 评论 -
笔试算法题解析--二维数组右上到左下打印
这几天考了一些公司的笔试,现凭着一些记忆,对有关算法实现题做解析并实现。1.二维数组,从右上到左下进行打印输出,如:1 2 3 4 5 6 7 89 10 11 12 13 14 15 16.输出4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13。解析:(1)比较笨的方法从右上角看,中心对角以上的输出顺序为:i=0,j=3;原创 2015-09-23 10:56:23 · 755 阅读 · 0 评论 -
不同时间复杂度实现最大子段和
感谢程云老师的分享~下面记录一下用不同方法实现最大字段和时间复杂度o(n^3)/* * 复杂度o(n^3) * 该算法使用3重循环,将所有子段的和求出,然后求出和最大的*/ public static void sum1(int a[]) { int ans = Integer.MIN_VALUE; int mini = 0, maxi = 0; for (int i原创 2015-09-22 21:13:33 · 538 阅读 · 0 评论 -
判断是否能通过添加一个字母将字符串变为回文串
题目:给定一个字符串,问是否能通过添加一个字母将其变为回文串参考了一些同学的文章,发现判断是否能添加一个字符变成回文串是“最少添加几个字符变成回文串”的一种情况。在做测试时有三种情况:(1)aba型,本来就是回文串(2)abac型,在串的左边或右边添加另一侧的字符,变成回文串(3)abceba型,在串的中间添加字符,形成回文串。然而普通做法,前两种很好判断和处理,只有第三种原创 2015-09-23 21:01:50 · 3354 阅读 · 0 评论 -
排序算法——java实现
/* 冒泡法排序 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 * 针对所有的元素重复以上的步骤,除了最后一个。 * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 * @param numbers *原创 2015-09-21 22:32:00 · 509 阅读 · 0 评论 -
Final用法
Java中的1、final类final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。 final方法不能被子类的方法覆盖,但可以被继承。2、final方法如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。转载 2015-09-15 21:52:01 · 450 阅读 · 0 评论 -
java内存管理
首先我们要明白一点,我们所使用的变量就是一块一块的内存空间!!一、内存管理原理:在java中,有java程序、虚拟机、操作系统三个层次,其中java程序与虚拟机交互,而虚拟机与操作系统间交互!这就保证了java程序的平台无关性!下面我们从程序运行前,程序运行中、程序运行内存溢出三个阶段来说一下内存管理原理!1、程序运行前:JVM向操作系统转载 2015-10-18 14:44:54 · 400 阅读 · 0 评论 -
java笔试题(1)基础知识
1.public static int function(){ static int i=0; i++; return i; }编译通不过,因为static定义的静态变量只能定义成全局变量,不能是局部变量。2. publicstatic void main(String[] args) {static原创 2015-10-12 22:25:13 · 953 阅读 · 0 评论 -
判断两个单链表是否相交--java实现
题目描述:单链表可能有环,也可能无环。给定两个单链表的头节点 head1 和 head2, 这两个链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交 的第一个节点;如果不相交,返回 null 即可。首先,感谢程云老师的分享!以下是本问题的解决方法整理。思路: 链表分有环链表和无环链表,如果两个链表存在相交,则只有两种可能,两个链表都无环原创 2015-08-20 17:46:03 · 11851 阅读 · 3 评论 -
java题目
1.What will be printed when you execute thefollowing code?class C { C() { System.out.print("C"); }} class A { Cc = new C(); A() { this("A"); System原创 2015-10-09 10:26:44 · 649 阅读 · 0 评论