算法(五)
2016-05-01 15:14
281 查看
利用递归来实现栈的倒序
0) { int a = stack[top-1]; i++; stack = reverseStackRecursively(stack,top-1); i--; stack[i] = a; } return stack; }" data-snippet-id="ext.e433f6494e5d413ef9cbf91ae7661a22" data-snippet-saved="false" data-codota-status="done">[code]//这个i定义在函数外面,防止每次递归调用将i的值初始化为0 int i = 0; public int[] reverseStackRecursively(int[] stack, int top) { // write code here if(top>0) { int a = stack[top-1]; i++; stack = reverseStackRecursively(stack,top-1); i--; stack[i] = a; } return stack; }
桶排序的应用
给定一个未排序数组,返回排序后相邻的元素的差的最大值。要求o(logn)使用桶排序,其实是通过空间换时间。就是开辟一块很大的空间,a[A[i]]=A[i]。这样一趟扫描下来数组就是有序的了
public int findMaxDivision(int[] A, int n) { // write code here int[] a=new int[65535]; for(int i=0;i<A.length;i++) { a[A[i]]=A[i]; } int pre=0; int result=0; for(int i=0;i<65535;i++) { if(a[i]-pre>result&&pre!=0) { result=a[i]-pre; } if(a[i]!=0) { pre=a[i]; } } return result; }
数组相关
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。定义一个在数组指定范围内找最大值的函数,for循环通过两个指针即可圈定要查找的范围
public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { ArrayList<Integer> result=new ArrayList<>(); if(size<=0||num==null) { return result; } int start=0; int end=size-1; while (end<num.length) { result.add(findMax(num,start,end)); start++; end++; } return result; } public int findMax(int[] num,int start,int end) { int result=0; for(int i=start;i<=end;i++) { if(num[i]>result) { result=num[i]; } } return result; } }
相关文章推荐
- 关于 JavaScript 如何去掉字符串中标签的方法
- hdu 2647 Reward
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- 修改VLC读缓冲机制
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- hdu 1754
- ZOJ - 3869 Ace of Aces (水)
- vs中如何统计整个项目的代码行数
- vs中如何统计整个项目的代码行数
- jstl中<c:forEach>的用法
- 全国SHP地图数据赠送
- linux Xtrabackup安装及使用方法
- 唱吧-利用HTML5漏洞免费导出MV
- 毕设笔记--SSH前台JSP页面下拉列表框的值从数据库动态获取
- avformat_find_stream_info接口延迟降低
- OC学习笔记(2)——@class指令
- 深入浅出Nodejs
- 【1】引用计数基本知识
- JavaScript的对象属性的两种访问方式