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

快速建设企业门户网站南宁seo推广

快速建设企业门户网站,南宁seo推广,广州市开发区建设局官方网站,包装设计是什么栈 特点#xff1a; 先进后出#xff0c;后进先出 适合#xff1a; 相当于一个暂存的地方#xff0c;方便回来找 特#xff1a; 单调栈——需要找到左边或者右边第一个比当前位置数大或者小的数字 数据类型 LinkedListT stack new LinkedList(); ad…栈 特点 先进后出后进先出 适合 相当于一个暂存的地方方便回来找 特 单调栈——需要找到左边或者右边第一个比当前位置数大或者小的数字 数据类型 LinkedListT stack new LinkedList(); addFirstpush;removeFirstpop;peek// 面向接口编程封装性更好 DequeT stack new ArrayDeque(); addLastpush;pollLastpop;peekLast1.有效的括号20简单 class Solution {public boolean isValid(String s) {// 使用Java中的LinkedList创建栈遍历s如果和栈顶元素匹配则弹出如果不匹配则压入遍历结束后如果列表为空说明字符串是有效的反之无效// 注意Java中定义集合如果集合元素是基本数据类型要使用他们的包装类String不是数组没有索引// 改进使用哈希map将括号存起来不用这么多if条件// 1. 进行一些特殊情况的判断int len s.length();// 如果字符串长度是奇数说明不是有效字符串if (len % 2 ! 0) {return false;}// 2. 定义栈_Java中定义集合如果集合元素是基本数据类型要使用他们的包装类LinkedListCharacter stack new LinkedList();// 3. 开始遍历字符串for (int i 0; i len; i) {if (stack.size() 0 || s.charAt(i) ( || s.charAt(i) { || s.charAt(i) [) {stack.addFirst(s.charAt(i));} else {char temp stack.removeFirst();if ((temp ( s.charAt(i) )) || (temp { s.charAt(i) }) || (temp [ s.charAt(i) ])) {continue;} else {return false;}}}if (stack.size() 0) {return true;}return false;} }简单题补充 1047删除字符串中的所有相邻重复项] class Solution {public String removeDuplicates(String s) {// 思路遍历字符串s将字符串中的字符压入栈中最后将栈中元素弹出并翻转得到最终字符串// 压栈栈为空或栈顶元素与遍历到的元素不相等// 出栈栈顶元素与遍历到的元素相等// 1. 定义一个栈DequeCharacter stack new ArrayDeque();// 2. 遍历for (int i 0; i s.length(); i) {if (stack.isEmpty()) {stack.addLast(s.charAt(i));continue;}if (stack.peekLast() s.charAt(i)) {stack.pollLast();} else {stack.addLast(s.charAt(i));}}// 3. 定义结果字符串为了方便翻转定义StringBuilderStringBuilder result new StringBuilder();while (!stack.isEmpty()) {result.append(stack.pollLast());}return result.reverse().toString();} }150. 逆波兰表达式求值 class Solution {public int evalRPN(String[] tokens) {// 思路定义一个栈如果是数字压入栈中如果是运算符弹出两个数字计算之后将结果压入栈中最后遍历结束栈中存在的最后一个值就是整个表达式的计算值// 注意计算的时候弹出来的数计算要反过来DequeInteger stack new ArrayDeque();int n tokens.length;for (int i 0; i n; i) {String s tokens[i];if (s.equals()) {int a stack.pollLast();int b stack.pollLast();stack.addLast(b a);System.out.println( stack.peekLast());} else if (s.equals(-)) {int a stack.pollLast();int b stack.pollLast();stack.addLast(b - a);} else if (s.equals(*)) {int a stack.pollLast();int b stack.pollLast();stack.addLast(b * a);} else if (s.equals(/)) {int a stack.pollLast();int b stack.pollLast();stack.addLast(b / a);System.out.println(/ stack.peekLast());} else {stack.addLast(Integer.parseInt(s));System.out.println(stack.peekLast());}}return stack.pollLast();} }2.最小栈155中等 特点辅助栈的使用 // class MinStack { // public int minValue; // 记录最小值 // public LinkedListInteger stack;// public MinStack() { // minValue Integer.MAX_VALUE; // stack new LinkedList(); // }// public void push(int val) { // if (val minValue) { // minValue val; // } // stack.addFirst(val); // }// public void pop() { // int temp stack.removeFirst(); // // 如果没有弹出最小元素 // if (temp ! minValue) { // return; // } else { // // 如果弹出了最小元素 // minValue Integer.MAX_VALUE; // for (int x: stack) { // if (x minValue) { // minValue x; // } // } // } // }// public int top() { // int temp stack.removeFirst(); // stack.addFirst(temp); // return temp; // }// public int getMin() { // return minValue; // } // }// 使用辅助栈也就是最小栈里面一致存放的是当前最小值压入新元素最小栈比较当前最小值和当前最小元素插入最小 class MinStack {LinkedListInteger xStack;LinkedListInteger minStack;public MinStack() {xStack new LinkedList();minStack new LinkedList();minStack.push(Integer.MAX_VALUE);}public void push(int val) {xStack.push(val);minStack.push(Math.min(val, minStack.peek()));}public void pop() {xStack.pop();minStack.pop();}public int top() {return xStack.peek();}public int getMin() {return minStack.peek();} }3.每日温度739中等 单调栈的直接使用 // class Solution { // public int[] dailyTemperatures(int[] temperatures) { // // 思路单调栈如果遍历到当前元素小于栈顶元素压栈如果大于不断弹出 // LinkedListInteger indexStack new LinkedList(); // int len temperatures.length; // int[] ans new int[len]; // // 遍历温度数组 // for (int i 0; i len; i) { // // 如果栈是空的 // if (indexStack.isEmpty()) { // indexStack.push(i); // } else { // // 不为空就要看栈顶元素和当前温度的大小 // if (temperatures[i] temperatures[indexStack.peek()]) { // indexStack.push(i); // } else { // while (! indexStack.isEmpty()) { // if (temperatures[i] temperatures[indexStack.peek()]) { // int temp indexStack.pop(); // ans[temp] i - temp; // } else { // break; // } // } // indexStack.push(i); // } // } // } // return ans; // } // }// 简化 class Solution {public int[] dailyTemperatures(int[] temperatures) {// 思路单调栈如果遍历到当前元素小于栈顶元素压栈如果大于不断弹出LinkedListInteger indexStack new LinkedList();int len temperatures.length;int[] ans new int[len];// 遍历温度数组for (int i 0; i len; i) {while (! indexStack.isEmpty()) {if (temperatures[i] temperatures[indexStack.peek()]) {int temp indexStack.pop();ans[temp] i - temp;} else {break;}}indexStack.push(i);}return ans;} }4.柱状图中最大的矩形84困难 单调栈的反复使用 class Solution {public int largestRectangleArea(int[] heights) {// 思路遍历每根柱子找到左右两边第一个比它矮的面积为(右-左)*min(高度最小)int n heights.length;// 定义左右两个数组分别保存左边和右边第一个比该位置小的下标int[] l new int[n];int[] r new int[n];// 初始填充Arrays.fill(l, -1);Arrays.fill(r, n);// 定义栈——辅助寻找第一个小于的元素DequeInteger stack new ArrayDeque();// 从头到尾遍历找到右边第一个小于该位置的下标for (int i 0; i n; i) {while (! stack.isEmpty() heights[stack.peekLast()] heights[i]) {r[stack.pollLast()] i;}stack.addLast(i);}// 从尾遍历到头找到左边第一个不小于该位置的小标stack.clear();for (int i n - 1; i 0; i--) {while (!stack.isEmpty() heights[stack.peekLast()] heights[i]) {l[stack.pollLast()] i;}stack.addLast(i);}// 开始计算面积int maxVal 0;for (int i 0; i n; i) {maxVal Math.max(maxVal, heights[i] * (r[i] - l[i] - 1));}return maxVal;} }[未完待续……] 总结 定义栈、三个栈的基本操作 ​ 单调栈加辅助空间
http://www.pierceye.com/news/791014/

相关文章:

  • 营销型网站seo开发一个app需要什么技能
  • 网站的欢迎页怎么做织梦网站名称修改
  • 树莓派做博客网站济南抖音推广公司
  • 网站短链接生成济宁网络
  • 组建 网站开发团队交互设计作品集网站
  • 宜春个人网站建设网站建设惠州
  • 医院网站开发兼职wordpress 域名跳转
  • 安监局网站建设wordpress 修改路径
  • 快速搭建网站wordpress成品网站货源入口
  • 信宜手机网站建设公司广州网站建设服务商
  • 网站备案注册3g免费网站制作
  • 做网站需要vps吗建设银行etc的网站是哪个好
  • 网站服务器 2核如何做网站联盟
  • 做空间的网站吗wordpress 视频管理 主题
  • 做外链选择那些网站建网站怎样往网站传视频
  • 网站主机多大车陂手机网站建设报价
  • 网站策划书内容wordpress 一键恢复
  • wordpress+外观+权限seo排名工具
  • 江苏企业网站制作哪家好潍坊网站开发招生信息
  • 建设一个地方门户网站网站名称搜索不到
  • 南江县住房和城乡建设局网站上海seo关键词优化
  • 门窗厂家东莞网站建设湖南健康码
  • 企业网站建设的背景和目的互联网政务服务平台
  • 化州市住房和城乡建设局网站开发网站心得
  • 网站设计制作公司需要什么资质python h5网站开发
  • 广东深圳广东深圳网站建设惠州网站开发公司电话
  • 建管家企业网站discuz仿wordpress
  • 老网站不要了做新站需要怎么处理平面广告设计赏析
  • 怎么看网站是不是php语言做的网站系统优点
  • 旅游网站建设 策划书销售app哪个好用