- 博客(41)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 两个有序数组的中位数
问题一:两个有序数组,且长度都为n。找出中位数。解决这个问题的方法很多。方法一:基于归并排序的merge方法。找出两个数组中第n大的数和第n+1大的数,然后求它们的平均数。时间复杂度为O(n)。方法二:比较两个数组中的中位数的大小。每一次比较都能缩小两个数组的搜索范围。时间复杂度为O(nlgn)。public static double findMedianInSameLeng
2013-03-21 00:37:02
625
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数组中第一个没出现的非负整数
给定一个整数数组,里面可能有正数,负数,和0。求最小的没在其中出现的非负整数。输入: 整数数组。输出: 最小的没出现的非负整数。例如: 输入:{2,1,3} 输出0 输入:{5,2,0,1.4,1,2} 输出3 输入:{5,2,3,0,4,1} 输出6思路:遍历数组,把所有元素原神归位,尽量使得a[i] == i。然后再遍历
2013-03-16 00:47:33
1351
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一些容易混淆的Java选择题
1. 有以下方法的定义,请选择该方法的返回类型( D ) (2013宜搜校园招聘Java笔试题) ReturnType method(byte x, float) { return (short) x / y * 2; } A、byte B、short C、int D、float2. 不能用来
2012-11-15 19:17:50
565
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 查找字符串中第一个只出现一次的字符
package Exam;import java.util.HashMap;/** * 2013宜搜校园招聘笔试题 * 查找字符串中第一个只出现一次的字符 */public class FirstOnceChar { /** * 方法一:遍历每个字符,判断这个字符在字符串中第一次出现 * 和最后一次出现的索引是否一样 其实时间复杂度还是O(n^2) */ pu
2012-11-15 19:04:48
547
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2013校园招聘java笔试题
记录一些找工作时碰到的笔试题。希望能对大家有帮助。package Exam;import java.util.Date;import java.text.SimpleDateFormat;/* * 2013任子行校园招聘java笔试题 * 把Date类型转成指定格式的String * 把二进制字符串转成int型 */public class DateString {
2012-11-08 10:34:31
1514
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 匿名内部类的几点说明
1.匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口。2.匿名内部类不能是抽象类,因为系统在创建匿名内部类的时候,会立即创建内部类的对象。3.匿名内部类不能定义构造器,因为匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以定义实例初始化块, 通过实例初始化块来完成构造器需要完成的事情。4.如果匿名内部类需要访问外部类的局部变量,则必须使用fi
2012-11-07 23:58:24
554
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 堆数据结构总结
一、最小堆(最大堆)package com.ldl.algorithms.Exercise;/************************************************************************* * Compilation: javac MinPQ.java * Execution: java MinPQ < input.txt
2012-06-21 15:03:19
974
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 最小最大堆(双端堆)的实现(Java版)
最小最大堆是同时实现最小堆和最大堆的一种数据结构。具有以下操作功能:(1)插入操作(O(logN));(2)返回最小值(O(1)),返回最大值(O(1));(3)删除最小值(O(logN)),删除最大值(O(logN))。最小最大堆的根结点是堆中的最小值。把根结点看做是第一层的话,奇数层是最小堆层,也是这些奇数层实现的是最小堆结构,同样,偶数层是最大堆层,偶数层实现最大堆结构。下图
2012-06-21 13:25:38
2608
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 用最大堆和最小堆实现中位数查找
具体思路:用一个最大堆存放比中位数小(或等于)的元素,用一个最小堆存放比中位数大(或等于)的元素。这里关键的方法是insert(),每当要插入一个元素时,根据判断条件将它插入最大堆或是最小堆,并更新最大堆和最小堆,使得最大堆和最小堆中元素的个数之差不超过1,这样中位数就是最大堆或最小堆的堆顶元素。当最大堆和最小堆中元素个数不同(个数相差为1)时,元素个数多的那个堆的堆顶元素即为中位数;如果两者
2012-06-17 20:30:09
7740
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 归并排序
首先介绍下归并方法。就是把两个已经有序的数组合并成一个更大的有序数组。 // stably merge a[lo .. mid] with a[mid+1 .. hi] using aux[lo .. hi] public static void merge(Comparable[] a, Comparable[] aux, int lo, int mid, int hi) {
2012-06-16 15:33:49
842
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 各种快速排序算法
在内部排序算法中比较常用的排序算法应该算快速排序了。时间复杂度为N*lgN。然而快排算法的实现又有很多的版本。下面总结一下。一、常规快排算法(以数组中一个元素作为旋转点) // quicksort the subarray from a[lo] to a[hi] private static void sort(Comparable[] a, int lo, int hi) {
2012-06-15 16:49:58
1094
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 字符串的组合
问题描述:输入一个字符串,输出它的所有组合。例如,输入abc,则输出 a b c ab ac bc abc。分析:如果输入的字符串的长度为n,则这个字符串能构成长度为1的组合、长度为2的组合、……、长度为n的组合。在求n个字符的长度为m(1 /* --- 注释版 --- */#include#include#includevoid Combination(cha
2012-05-28 23:13:58
400
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 求数对之差最大值
今天在网上看了一个面试题,很有意思!博主讲解的很到位,思路清晰流畅,代码简洁美观。从分治法 到 一种变形 再到 动态规划。看完之后,自己把思路整理了一下,把代码自己巧了一遍。 题目:在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。
2012-05-17 22:30:38
600
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 不用加法操作符(+)实现加法运算
问题描述:写一个函数,要求不用加法操作符(+)实现加法运算。#include#include#include/* 不用(+)运算符实现两个整数相加 */int add_without_operater(int a, int b);int main(){ unsigned num1 = -3; unsigned num2 = 5; printf("%d\n
2012-05-17 13:48:50
1131
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从无头单链表中删除节点
问题描述:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除。一般链表的删除需要顺着头结点向下找到当前待删节点的前驱节点,然后让前驱节点指向后驱节点就行了。这里,没有头结点,就没办法找到前驱结点。但我们可以采用“狸猫换太子”的做法。我们把当前结点“看成”是前驱结点,把后续节点当做待删结点删除(删除之前,记下后续结点的值)
2012-05-16 16:22:03
3321
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 字符串移位包含的问题
问题描述:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。例如,给定s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。解法一:对s1进行循环移位,再进行字符串包含的判断,从而遍历其所有可能性。#include#includeint rotate_conbine(char *src,
2012-05-16 13:54:16
1245
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 无处不在的二分搜索
二分搜索想必学计算机的人都很熟了,它是很多算法里的都会用到的,编程珠玑里有专门的介绍。二分搜索的框架大家都很熟悉,但要完完整整写对也不是那么容易的事情。这很考验一个人的基本功的,这也是面试官常考的一个问题。下面就对其进行一下总结。 1. 常规写法int BinarySearch(int *a, int l, int r, int z){ if(l > r) ret
2012-05-14 10:21:15
426
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个c指针问题的思考
最近在看K&R的C程序设计语言,对其中一个指针问题颇有疑惑。今天特意在VS2010上运行下其中的代码,以验真假。代码如下 int main(int argc, char *argv[]){ cha
2012-04-25 17:04:24
325
原创 一道Twitter编程面试题
Twitter面试题:水沟积水问题问题描述:在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”“假如开始下雨了,那么墙之间的水坑能够装多少水呢?“在这个图片里我们有不同高度的墙。这个图片由一个整数数组所代表,数组中每个数是墙的高度。上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]”“假如开始下雨了,那么墙之间的水坑能够装多少水呢?”思路分析: 一种只需要一次遍历的方法(注
2013-11-14 11:32:57
1769
原创 学习点滴
1.hibernate的配置文件的放置位置。位置放错了会导致报错,说找不到配置文件。hibernate.cfg.xml一般放在src根目录下
2013-11-08 23:39:04
634
原创 MyEclipse操作集
1. 添加User Libraries. Window -> Preference -> Java -> Build Path -> User Libraries. 举例,我们要自定义一个hibernate库,点击New按钮,新建一个名为hibernate的User Library,然后点击Add JARs按钮添加hibernate所需的JAR包,最后点击OK按钮。
2013-11-08 21:51:49
512
原创 Bugs On J2EE
1. java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??原因:tomcat端口被占用。解决方法:通过命令行找到是哪个程序占用了该端口,并关闭相应的程序。开始–运行–cmd 进入命令提示符 输入netstat –ano|findstr “端口号”
2013-11-08 08:50:09
706
原创 Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.思路分析:假设链表长度为n,循环头与头结点之间的距离为k。1. 让两个指针同时遍历链表,一个步伐为1,另一个步伐为22. 这两个指针相遇时应满足的条件: i)2s1 = s2(相同时间下,路
2013-11-03 14:16:27
3096
3
原创 Linked List Cycle
Given a linked list, determine if it has a cycle in it.
2013-11-03 11:46:37
5789
2
原创 Stanford--Introduce to Databases(2)
Question 5 Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, andratingDate. Also, sort the data, first by reviewer
2013-07-05 10:30:13
831
原创 Stanford--Introduce to Databases(1)
SQL Movie-Rating Query Exercises (core set) You've started a new movie-rating website, and you've been collecting data on reviewers' ratings of various movies. There's not much data yet, but you c
2013-07-05 10:19:28
1781
原创 字符串编辑距离
给定一个源串和目标串,能够对源串进行如下操作: 1.在给定位置上插入一个字符 2.替换任意字符 3.删除任意字符写一个程序,返回最小操作数,使得对源串进行这些操作后等于目标串,源串和目标串的长度都小于2000。输入:两个字符串,一个源串,一个目标串输出:最小操作数解题思路:动态规划算法求解,其中状态转移方程是:f[i, j] = min {f[i-1,
2013-03-22 20:52:48
542
原创 最长合法括号序列
题目描述:给你一个长度为N的,由’(‘和’)’组成的括号序列,你能找出这个序列中最长的合法括号子序列么?合法括号序列的含义便是,在这个序列中,所有的左括号都有唯一的右括号匹配;所有的右括号都有唯一的左括号匹配。例如:((()))()()便是一个长度为10的合法括号序列,而(()))( 则不是。需要你求解的是,找出最长的合法括号子序列的长度,同时找出具有这样长度的序列个数。输入:
2013-03-19 20:55:26
2103
原创 打印从0到1000的所有素数
打印从0到1000的所有素数public class Prime { static public int counter = 0; public static void printPrime(int start, int end) { for (int i = start; i <= end; i++) { if (isPrime(i)) { Syst
2013-03-19 17:48:55
1001
原创 斐波纳契数列(递归实现)
已知斐波纳契数列如下:F[1] = 1, F[2] = 1, F[3] = 2, F[4] = 3, ..., F[n] = F[n-1] + F[n-2],那么请问F[34] + F[32] == ?解题思路:运用HashMap存储已经计算过的斐波那契数,这样可以大量减少重复的计算。import java.util.HashMap;import java.util.Map;p
2013-03-19 16:34:08
681
原创 字符串循环右移
定义字符串循环右移操作:把一个长度为N的字符串内的元素循环右移K位,要求时间复杂度为O(N),空间复杂度为O(1),请编写代码实现。输入样例:N=8的字符串abcdefgh;输出样例:K=4,即字符元素右移4位,得到efghabcd。解题思路:运用编程珠玑中讲到的 “三次翻手” 原理。public class Translator { public static void ri
2013-03-19 16:08:35
1701
1
转载 GC工作原理
Java的内存管理实际上就是对象的管理,其中包括对象的分配和释 放。 对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们 称该对象为"不可达的".GC将负责回收所有"不可达"对象的内存空间。 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的 地址、大小以及使用情况。通常,GC采用有向图的方式记录和
2012-11-08 09:20:36
4933
转载 JDK,JRE,JVM这三者的联系与区别
转自 http://cache.baidu.com/c?m=9d78d513d99b01f84fede5265b4fc066680cc43c2bd6a00209d0843be4732b305011e5ac26520774d4d20d6116ae394b9afb21043d1451c38cb88f5e9afbcc2775ce6176671df55c0f8347f29e5125b623945bfeaf
2012-11-07 12:17:21
536
原创 装饰者模式
定义:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 结构图: Component: 定义一个对象接口,可以给这些对象动态地添加职责。 public interface Component{ void operation();} Concrete Component: 定义一个对象,
2012-09-10 15:41:51
242
原创 打印一个勾(c实现)
C语言程序设计现代方法第二章中的一个习题。看起来很简单,但自己编的时候还是发现很多问题,一步一步调试最后才搞定了。这让我加深了对“程序是编出来的”这句话的理解。下面贴上代码,有兴趣的朋友可以自己敲一下代码。#include/* 空n格打印一个星 */void printStar(int n){ int i; for(i = 0; i < n; i++) printf(
2012-07-05 19:34:56
1262
原创 翻转字符串Java实现
public static String reverse(String s) { int N = s.length(); if(N <= 1) return s; String left = s.substring(0, N/2); String right = s.substring(N/2, N); return reverse(ri
2012-06-29 17:50:58
344
原创 具体数学 第四章 数论
4.1 可除性m整除n,或说n能被m整除 m\n m>0 and n = mk for some integer k. (4.1)两个整数(m和n)的最大公约数是能同时整除这两个整数的最大整数 gcd(m, n) = max{k | k\m and k\n}. (4,2)最小公倍数的概念 lcm(m,
2012-06-23 02:11:16
804
转载 Eclipse中快捷键功能
转载:http://hi.baidu.com/flyx100/blog/item/ca403e2f8d73233f1f3089a7.htmlEclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和
2012-06-05 21:17:21
451
windows_exporter-0.13.0-amd64.msi.zip
2020-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人