当前位置: 首页 > news >正文

购物网站难做吗/网络优化公司

购物网站难做吗,网络优化公司,怎样建立自己网站多少钱,做私服网站租给发布站题目 设计包含min 函数的栈。 定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。 要求函数min、push 以及pop 的时间复杂度都是O(1)。 个人解题思路 1.存储结构采用数组 2.min函数的添加:主要是每次push元素的时候,…

题目


设计包含min 函数的栈。
定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。
要求函数min、push 以及pop 的时间复杂度都是O(1)。


个人解题思路


1.存储结构采用数组

2.min函数的添加:主要是每次push元素的时候,都要进行比较,保存最小的元素。所以里面要有一个保存最小元素的属性,用什么来存很关键。当你pop的元素刚好是最小元素的时候,需要将最小元素改为上一次最小的数,所以这个时候就得保存每次比较后最小的元素。所以需要一个集合来保存,该集合的元素是从大到小排列好的,而且更具第一条,我们得使用数组的顺序存储结构,所以这里我们采用包装数组ArrayList来保存。

第一次,最小的数为本身,放入到list集合中。当第i次push的时候(i>2),要比较该元素和栈中最小元素,如果小于等于该数,就将该元素添加到list中。当pop的数刚好是最小的元素的时候,list集合中要删除该数。这样我们调用min函数的时候,只需要得到list最后一个元素即可。



代码


先用starUML设计类图





根据类图设计代码:


package com.sprd.interview.algorithm;import java.util.ArrayList;
import java.util.List;/*** Copyright 2014 TJ SPREADTRUM TEST_AF All Right Reserved* * @author: hui.qian Created on 2014年12月10日 上午10:08:42 Description:*/
public class QHStack {List<Integer> mStack;List<Integer> mMins;int stackTopElement;int minElement;/*** 初始化栈信息*/public void initStack() {mStack = new ArrayList<Integer>();mMins = new ArrayList<Integer>();}/*** 销毁栈*/public void destoryStack() {if (mStack != null) {mStack.clear();mStack = null;}if (mMins != null) {mMins.clear();mMins = null;}}public void push(int newElement) {checkInit();if (isMin(minElement, newElement)) {mMins.add(newElement);minElement = newElement;}mStack.add(newElement);stackTopElement = newElement;}/*** 获得栈中最小元素*/public int min() {checkInit();return minElement;}/*** 获得栈顶元素并删除它*/public int pop() {checkInit();int num = stackTopElement;if (stackTopElement == minElement) {mStack.remove(stackTopElement);mMins.remove(minElement);stackTopElement = mStack.get(mStack.size() - 1);minElement = mMins.get(mMins.size() - 1);}return num;}/*** 判断栈是否为空*/public boolean isEmpty() {if (mStack == null)return false;return mStack.isEmpty();}/*** 获得栈顶元素*/public int getTop() {checkInit();return stackTopElement;}/*** 获得栈的大小*/public int stackLength() {checkInit();return mStack.size();}/*** 检查是否已初始化栈*/private void checkInit() {if (mStack == null) {throw new IllegalArgumentException();}}/*** 判断新元素是否比当前最小数小*/private boolean isMin(int min, int newElement) {if (newElement <= min) {return true;}return false;}}




http://www.lbrq.cn/news/823411.html

相关文章:

  • 新闻网站设计/东莞做网站seo
  • 黑帽seo怎么做网站排名/公司网站如何建设
  • 精美网页设计源码/苏州seo关键词优化外包
  • html5制作网站开发/站长工具seo客户端
  • 莆田有哪几家做网站设计的/鸡西seo顾问
  • vs2017网站开发组件/利于seo的建站系统有哪些
  • 好的做淘宝详情页的网站有哪些/百度网站收录提交入口
  • 建站哪个便宜/广州seo顾问服务
  • 外贸营销型网站建站/网站推广的途径有哪些
  • 网站首页设计参考/长沙seo培训
  • 阜阳做网站公司/快速seo关键词优化技巧
  • 怎么诊断网站/如何在百度提交自己的网站
  • 郑州做网站好/培训机构怎么找
  • 自建营销型网站模板/石家庄手机端seo
  • 长沙网开亿面做网站多少钱/线上网络推广怎么做
  • 17网站一起做网店打不开/员工培训
  • 会计网站建设意义/sem竞价推广公司
  • c2c网站管理系统下载/百度实时热搜榜
  • 网站商城建设的维度/国外免费网站服务器
  • 网站商务通js代码/百度开店怎么收费
  • 汕头市网站建设分站服务机构/怎么建网站教程
  • 企业门户网站登录/小熊代刷推广网站
  • 网站前台后台打开慢/搜狗关键词排名查询
  • 做文案策划有些网站可看/整合营销传播最基础的形式是
  • 苍山网站建设/新手怎么做电商运营
  • 仪征网站建设/免费网页代码大全
  • 北京网站开开发公司/开发网站用什么软件
  • 联想用来网站开发笔记本/惠州网站推广排名
  • 北京朝阳网站建设公司/兰州百度推广的公司
  • 自己怎么做网站购买空间/seo在线培训课程
  • 音视频学习(四十二):H264帧间压缩技术
  • Linux的相关指令
  • 【web自动化】-5- fixture集中管理和项目重构
  • 【数据结构与算法】数据结构初阶:详解二叉树(二)——堆
  • 创建一个触发csrf的恶意html
  • Node.js worker_threads 性能提升