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

CodeTop100 Day20

58、翻转字符串中的数字

class Solution {public String reverseWords(String s) {s = s.trim();                                   int j = s.length() - 1, i = j;StringBuilder res = new StringBuilder();while (i >= 0) {while (i >= 0 && s.charAt(i) != ' ') i--;     res.append(s.substring(i + 1, j + 1) + " "); while (i >= 0 && s.charAt(i) == ' ') i--;     j = i;                                      }return res.toString().trim();                    }
}

尽量避免用库函数,这里采用双指针做法,先去掉头尾部空格,左指针从最右边向左移动,然后将i,j+1加入字符串,然后移动i指针到下一个单词,j指针跟随i进入下一轮循环,最后减去最后个空格输出即可

59、最小栈

class MinStack {private Stack<Integer> stack;private Stack<Integer> minStack;public MinStack() {stack=new Stack<>();minStack=new Stack<>();}public void push(int val) {stack.push(val);if(minStack.isEmpty()||val<=minStack.peek()){minStack.push(val);}}public void pop() {if(stack.pop().equals(minStack.peek())){minStack.pop();}}public int top() {return stack.peek();}public int getMin() {//每次进栈时候额外增加个当前位置最小值//返回top.min就行了return minStack.peek();}
}

当然这里可以用数组代替,空间可以更小

具体思路就是维护一个最小栈存放当前最小值

60、求根结点到叶子节点之和

class Solution {public int ans = 0;public int sumNumbers(TreeNode root) {dfs(root,0);return ans;}public void dfs(TreeNode r,int val) {if (r == null) {// ans += val;return ;}val = val * 10 + r.val;if (r.left == null && r.right == null) {ans += val;return;}if (r.left != null ) dfs(r.left,val);if (r.right != null) dfs(r.right,val);}
}

模拟题,遍历一下路径,将结果放入ans,val值是当前节点的上一层,递归还是很清晰的

http://www.xdnf.cn/news/10658.html

相关文章:

  • 树欲静而风不止,子欲养而亲不待
  • 【Go语言】Ebiten游戏库开发者文档 (v2.8.8)
  • javaEE->IO:
  • tortoisegit 使用rebase修改历史提交
  • 计算机组成原理——CPU的功能和基本结构
  • 【Doris基础】Apache Doris中的Version概念解析:深入理解数据版本管理机制
  • postman工具使用
  • 鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(一)
  • Java线程同步与内存模型详解
  • react与vue的渲染原理
  • 第十二节:第四部分:集合框架:List系列集合:LinkedList集合的底层原理、特有方法、栈、队列
  • css使用scoped之后样式失效问题
  • Day43打卡(补41+42) @浙大疏锦行
  • Git实战--基于已有分支克隆进行项目开发的完整流程
  • springboot 集成webFilter登录认证信息过滤 DEMO原型介绍
  • 混和效应模型在医学分析中的应用
  • 16.FreeRTOS
  • 学习BI---基本操作---数据集操作
  • HealthBench医疗AI评估基准:技术路径与核心价值深度分析(下)
  • 机器人夹爪的选型与ROS通讯——机器人抓取系统基础系列(六)
  • TomatoSCI数据分析实战:探索社交媒体成瘾
  • 【计算机网络】第3章:传输层—拥塞控制原理
  • php执行后报502,无错误提示的排查和解决
  • 前端面经高阶组件HOC 和 HOOKS Redux
  • 企业展示型网站模板HTML5网站模板下载指南
  • 【具身智能】【机械臂】各类机械臂对比
  • SQL Views(视图)
  • c++类和对象-继承
  • 打家劫舍与最长有效括号:动态规划与字符串处理的双重魅力
  • 也说字母L:柔软的长舌