- 博客(58)
- 资源 (192)
- 收藏
- 关注
原创 排序-堆排序
1、基本思想堆是一种特殊的树形数据结构,其每个节点都有一个值,通常提到的堆都是指一颗完全二叉树,根结点的值小于(或大于)两个子节点的值,同时,根节点的两个子树也分别是一个堆。 堆排序就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点。将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将...
2018-10-31 20:45:06 186
原创 排序-冒泡排序
public class Sort { public static void main(String args[]){ int[] arr = {12,23,34,56,56,56,78}; for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); ...
2018-10-31 16:48:13 99
原创 动态规划&贪心-Jump Game
Jump GameDescriptionHintsSubmissionsDiscussSolutionPick OneGiven an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array repre...
2018-10-31 16:25:53 267
原创 贪心算法-Best Time to Buy and Sell Stock II
Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete as many transactions as you like (i.e., buy on...
2018-10-31 12:39:52 298
原创 动态规划-Best Time to Buy and Sell Stock
题目Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock)...
2018-10-31 11:46:54 196
原创 Jump Game II
这道题的要求是给定一整数数组,数组元素表示每次可以跳跃的最大距离。然后初始位置在数组的第一个元素,目的是以最少的步数到达最后元素。例如A={2,3,1,1,4},初始位置0出为2,最终跳的最少次数是2,即先从0跳到1位置,此时1位置是3,正好可以一次跳到结束位置,加起来正好两次是最小次数了。采用贪心算法,引入reach变量表示可以能到达的最远处,这也就是全局最优解;当遍历到i时,局部最优解...
2018-10-31 10:21:18 98
原创 区间贪心
题目大意:以x轴为分界,y>0部分为海,y<0部分为陆地,给出一些岛屿坐标(在海中),再给出雷达可达到范围,雷达只可以安在陆地上,问最少多少雷达可以覆盖所以岛屿本题贪心思路是把点转化为在x轴坐标上的区间(即能保证覆盖该小岛的雷达所有可能位置的集合),然后按点的顺序排也行,按左端点排也行。然后最左边的依次向右遍历,如果下一个区间的最左端在上一个雷达的右端,显然需要放一个新雷达;如果在...
2018-10-31 08:25:26 288
原创 贪心算法-过河问题
POJ题目链接:http://poj.org/problem?id=1700N个人过河,船每次最多只能坐两个人,船载每个人过河的所需时间不同,问最快的过河时间。思路:当n=1,2,3时所需要的最小时间很容易求得,现在由n>=4,假设n个人单独过河所需要的时间存储在数组t中,将数组t按升序排序,那么 这时将单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式: 1&...
2018-10-30 20:05:39 4696
原创 贪心算法-多机调度问题
多机调度问题:有n个独立的作业需要在m台相同的机器上进行加工处理. 作业i需要的加工时间为ti. 每个作业可以任选一台机器加工, 但加工结束前不能中断, 作业不允许拆分.要求给一种作业调度方案, 使所给的n个作业在尽可能短的时间内完成.问题分析:为什么是NP问题? (待求证)问题解答:采用最长处理时间作业优先的贪心选择策略可以设计出较好的近似算法----------...
2018-10-30 17:22:49 2832
原创 贪心算法-选择不相交区间问题
解法一按照左区间排序import java.util.*;public class Zuidabuxiangjiaoshu2 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ i...
2018-10-30 15:45:32 343
原创 贪心算法-最优装载问题
最优装载问题。给出n个物体,第i个物体重量为w[i]。选择尽量多的物体,使得总重量不超过C。 【分析】 由于只关心物体的数量,所有装重的没有装轻的划算。只需把所有物体按重量从小到大排序,一次选择每个物体,直到装不下为止。这是一种典型的贪心算法,只顾眼前,但能得到最优解。--------------------- 作者:za30312 来源:CSDN 原文:https://blog.cs...
2018-10-30 14:47:24 1371
原创 二分查找
import java.util.Scanner;public class Erfenchazhao { public static int num[]=new int[]{1,2,3,4,5,6,7,9,10,11,12,13,14,15}; public static void main(String args[]){ Scanner in=new Scann...
2018-10-30 14:27:01 133
原创 演讲大厅安排
演讲大厅安排【问题描述】有一个演讲大厅需要我们管理,演讲者们事先定好了需要演讲的起始时间和中止时间。我们想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标是使演讲者使用大厅的时间最长。假设在某一时刻一个演讲结束,另一个演讲就可以立即开始。【编程任务】计算演讲大厅最大可能的使用时间。【输入格式】第一行为一个整数N,N<=5000,表示申请的数目。...
2018-10-30 13:50:57 233
原创 动态规划-对抗赛
【问题描述】程序设计对抗赛设有N(0<N<=50)个价值互不相同的奖品,每个奖品的价值分别为S1,S2,S3,...,Sn(均为不超过100的正整数)。现将他们分给甲乙两队,为了使得甲乙两队得到相同价值的奖品,必须将这N个奖品分成价值相同的两组。编成要求:对给定N及N个奖品的价值,求出将这N个奖品分成价值相同的两组,共有多少种分发?例如N=5,S1,S2,S3...,Sn分...
2018-10-30 12:35:02 632
原创 动态规划-和为sum的方法数
给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述:输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数A[i](32位整数),以空格隔开。输出描述:输出所求的方案数输入例子:5 155 5 10...
2018-10-30 10:51:47 362
原创 动态规划-硬币找零问题四种情况
题目1:给定数组arr,arr中所有的值都是正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数。举例: arr[5,2,3],aim=20。 4张5元可以组成20元,其他的找钱方案都要使用更多张的货币,所以返回4。题解:一眼看去这道题好像可以用贪心算法可解,但是仔细分析发现有些值是不可以的,例如arr...
2018-10-30 10:43:34 1050
原创 穷举一个字符串的子序列
import java.util.*;public class Zixulie { public static Set<List> set=new HashSet<List>();//用于保存穷举的结果 public static List temp=new ArrayList<>(); public static void main...
2018-10-30 07:13:12 589
原创 最长递增子序列
找准动态规划公式,某一位置的最大递增长度与前面的是什么关系import java.util.*;public class Zuichangdizengzuxulie { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext(...
2018-10-29 15:40:10 118
原创 最长公共子序列
import java.util.*;public class Zuichanggonggongzixulie { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ String str1=...
2018-10-29 09:14:49 257
原创 清华大学研究生机试题目-玛雅人的密码
题目描述玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能解开密码,每次只能移动相邻的两个数字。例如02120经过一次移位,可以得到20120,01220,02210,02102,其中20120符合要求,因此输出为1.如果无论移位多少次都解不开密码,输出-1...
2018-10-27 08:50:29 162
原创 动态规划0-1背包问题
动态规划解决01背包问题一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现;三、动态规划的原理及过程: eg:number...
2018-10-27 08:50:14 301
原创 最大公约数
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。import java.util.*;public class Zuidagong...
2018-10-26 08:02:47 1024
原创 打印日历
打印出任意年份某一个月的日历。提示:要判断该年份是否是闰年,若是闰年,二月为29天,平年为28天。而判断闰年的规则是:如果((该年能被4除尽且不能被100除尽) 或 能被400除尽),则该年是闰年。 输入2012.01输出:Mon Tue Wed Thu Fri Sat Sun 1 2 3 4 5 6 7 ...
2018-10-26 08:02:30 355
原创 生成随机数
产生某个范围的随机数(1-100随机数):第一种方法:Random r = new Random();int range = 100;int index = r.nextInt(range);第二种方法:(1+(int)(Math.random()*100))
2018-10-26 08:02:11 121
原创 清华大学考研机试题目-成绩排序1
题目描述查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack 70peter 96Tom 70smith 67从高到低 成绩 peter 96 jack 70 Tom 70 smith 67从低到高...
2018-10-26 08:01:45 165
原创 清华大学计算机考研机试题目-整数拆分
题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入...
2018-10-26 08:00:59 1526
原创 清华大学考试机试-球的半径和体积
题目描述输入球的中心点和球上某一点的坐标,计算球的半径和体积输入描述:球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1输出描述:输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数为避免精度问题,PI值请使用arccos(-1)。示例1输入复制0 0 0 1 1 1 输出复制1.732 ...
2018-10-26 08:00:42 122
原创 BigData(BigInteger和BigDecimal)
常用的BigData 有两种,一种是BigInteger,用于整数;另外一种是BigDecimal用于是实数,需要注意的是BigDecimal再做出发运算应该会遇到除不尽的情况,因此需要设置保留几位小数。import java.math.BigDecimal;import java.math.BigInteger;import java.util.*;public class te...
2018-10-25 08:26:00 150
原创 八皇后问题
使用DFS递归的深度搜索,对于每一行依次存放一个皇后,并判断该皇后放的位置是否满足要求,判断是否满足要求条件的思路也很简单,直接暴力查看皇后要放入位置的每一行、每一列、 左对角线和右对角线四是否有其他皇后即可。import java.util.*;public class Bahuanghou3 { public static int n=0; public static ...
2018-10-25 08:25:45 125
原创 eclipse调试和debugTips
Tips:设置断点第一步设置断点:在该行最前面边框双击 或快捷键:Ctrl+Shift+B第二步:Debug 运行启动第三步:运行到断点后:使用快捷键F5,F6,F7单步执行。F5:Step into/进入该行的函数内部F6:Step over/一行一行执行Elipse 设置提示和对齐:Window->preferences->editor->co...
2018-10-25 08:25:32 99
原创 大数相乘 43. Multiply Strings
43. Multiply Strings大数相乘的一般实现就是模拟乘法,使用字符串达到相乘的结果很大。一般模拟乘法需要注意几点:(1)乘法是从低位向高位;(2)一般还要实现一个大数加法,以辅助完成乘法。(3)注意java中字符的表示,是‘0’还是0,对于这样的疑问可以不记住,试一下就有结果。解法一:有点利用了分治的思想;先拿一个去做乘法,然后相加。import jav...
2018-10-25 08:25:16 141
转载 java中如何用Scanner类读入单个字符
Scanner没有直接读入单个字符的方法,next方法没办法读入空格符,因为Scanner以空格符作为输入完毕的标志import java.util.Scanner;Scanner in = new Scanner(System.in);String s = in.nextLine();char[] chars = s.toArray();char c = chars[0]; ...
2018-10-25 08:24:57 1613 2
原创 贪心算法-最大数
题目:设有n个正整数,将它们连接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343,连成的最大整数为34331213。又如:n=4时,4个整数7,13,4,246,连成的最大整数为7424613。输入:212 121输出:12121import java.util.Scanner;//贪心标准:先把整数转换成字符串,然后在比较a+b和b+a,如果a+b&...
2018-10-25 08:24:42 926
原创 BufferedReader和BufferedWriter读取和写入数据
import java.util.*;import java.io.*;public class Score{ public static void main(String args[]) throws Exception{ String pathname=new String("//Users//wangxi//Documents//Score.txt"); ...
2018-10-25 08:24:30 1474
原创 素数-判断一个数是否是素数
最简答的思路,首先将1,2,3单独判断,然后对于一个数循环判断,循环的结束为(int)Math.sqrt(n)import java.util.*;public class Sushu2 { public static void main(String args[]){ Scanner in=new Scanner(System.in); int n=...
2018-10-25 08:24:09 207
原创 贪心算法-背包物品可切割
可分割背包问题很容易理解,只需要根据收益和重量的比值进行排序,首选比值较大者填入即可,若物品种类大于剩余载重量,则填充剩余载重量的此物品,在剩余载重量足够的情况下,依次将物品填入背包即可。 import java.util.*;public class Beibao { public static void main(String args[]){ Scanner ...
2018-10-25 08:23:53 305
转载 动态规划-最大连续子数组和
个整数数组中的元素有正有负,在该数组中找出一 个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2},最大连续子数组的和为5+2-1+2=8。问题输入就是一个数组,输出该数组的“连续子数组的最大和”。思路分析 这个问题我所见的有四种不同时间复杂度的算法。暴力模拟显然是...
2018-10-25 08:23:37 2198
原创 Java 自带的排序
collections.sort() 是用归并排序实现的,所以是稳定排序,对list进行排序,另外注意需要重新定义一个类,ObjectCollections.sort(list,new Comparator(Object){public int compare(Object o1,Object o2){return 0;}}); Collections.sort(intList,...
2018-10-24 00:24:19 4804
转载 Java字符串操作汇总
https://www.cnblogs.com/benchao/p/5386496.htmlString类对象的常用操作及方法在Java中,String类包含有50多个方法来实现字符串的各种操作,以下介绍一些我们需要经常使用的方法.(1)字符串的连接public String concat(String str) 该方法的参数为一个String类对象,作用是将参数中的字符串str连接到...
2018-10-24 00:23:41 98
Improving iForest with Relative Mass.pdf
2019-08-18
Dynamic Density Based Clustering.pdf
2019-08-18
Clustering by fast search and find of density peaks.pdf
2019-08-18
domingues-outlier-detection-evaluation.pdf
2019-07-07
flink-1.3.0-bin-hadoop2-scala_2.10.tgz
2019-07-07
Aljoscha-Krettek-The-Future-of-Apache-Flink.pdf
2019-07-07
A Novel Scalable DBSCAN Algorithm with Spark
2019-07-07
春招&秋招面经
2018-11-02
c++面试题题目集锦
2018-11-02
praat 语音软件使用手册
2018-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人