博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sort With 2 Stacks - Medium
阅读量:5961 次
发布时间:2019-06-19

本文共 1291 字,大约阅读时间需要 4 分钟。

Given an array that is initially stored in one stack, sort it with one additional stacks (total 2 stacks).

After sorting the original stack should contain the sorted integers and from top to bottom the integers are sorted in ascending order.

Assumptions:

  • The given stack is not null.

Requirements:

  • No additional memory, time complexity = O(n ^ 2).

 

基于selection sort,一个stack即当buffer又当output,每次倒的时候记录global min及出现次数(以防重复元素)

time: O(n^2), space: O(n)

public class Solution {  public void sort(LinkedList
s1) { LinkedList
s2 = new LinkedList
(); // Write your solution here. if(s1 == null || s1.size() < 0) { return; } int cnt = 0; while(!s1.isEmpty()) { int globalMin = Integer.MAX_VALUE; while(!s1.isEmpty()) { int tmp = s1.pop(); if(tmp < globalMin) { globalMin = tmp; } s2.push(tmp); } while(!s2.isEmpty() && s2.peek() >= globalMin) { int tmp = s2.pop(); if(tmp == globalMin) { cnt++; } else { s1.push(tmp); } } while(cnt > 0) { s2.push(globalMin); cnt--; } } while(!s2.isEmpty()) { s1.push(s2.pop()); } }}

 

转载于:https://www.cnblogs.com/fatttcat/p/10219270.html

你可能感兴趣的文章
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
CentOS定时同步系统时间
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>