当前位置:网站首页>力扣刷题日记/day7/6.30
力扣刷题日记/day7/6.30
2022-07-04 16:33:00 【bobo洁厕灵】
新手村
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
因为java的字符串是不可以修改的,字符串拼接操作时,会生成临时的字符串副本,并在使用后销毁
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
//创建一个StringBuilder对象
StringBuilder sb = new StringBuilder(10);
//创建一个StringBuffer对象
StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
//将内容加到sBuffer字符串后
sBbuffer.append("内容");
//toString() 方法用于返回以一个字符串表示的 Number 对象值
System.out.println(new Object().toString());
常用方法:
Java StringBuffer 和 StringBuilder 类 | 菜鸟教程 (runoob.com)
Java toString() 方法 | 菜鸟教程 (runoob.com)
二叉树的遍历
深度优先遍历(DFS)
解题思路:利用递归,深度优先遍历的思想
考虑节点和节点的孩子节点
若节点是叶子节点,在已经搜索到的路径的末尾添加该节点,得到一条从根节点到叶子节点的路径,将该路径直接加入返回变量即可
若节点不是叶子节点,在已经搜索到路径的末尾添加该节点,并继续递归遍历该节点的每一个孩子节点
遍历完整个二叉树,就得到了所有的从根节点到叶子节点的路径
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> paths = new ArrayList<String>(); //定义一个返回变量paths
constructPaths(root,"",paths); //递归执行深度优先搜索
return paths;
}
public void constructPaths(TreeNode root,String path,List<String> paths){
if(root != null){ //判断节点是否存在
StringBuffer pathSB = new StringBuffer(path); //定义一个pathSB用来存储临时路径
pathSB.append(String.valueOf(root.val)); //将节点值加入路径的末尾
if(root.left == null && root.right == null){ //如果是叶子节点
paths.add(pathSB.toString()); //将pathSB转换成String对象加入到返回变量paths中
} else{
pathSB.append("->"); //不是叶子节点,就在临时路径后加->
constructPaths(root.left,pathSB.toString(),paths); //继续搜索其子节点
constructPaths(root.right,pathSB.toString(),paths);
}
}
}
}
边栏推荐
- [211] go handles the detailed documents of Excel library
- 估值900亿,超级芯片IPO来了
- 怎么开户才是安全的,
- High school physics: force, object and balance
- 上市公司改名,科学还是玄学?
- [daily question] 556 Next bigger element III
- Is BigDecimal safe to calculate the amount? Look at these five pits~~
- Heartless sword Chinese translation of Elizabeth Bishop's a skill
- DB-Engines 2022年7月数据库排行榜:Microsoft SQL Server 大涨,Oracle 大跌
- 蓝桥:合根植物
猜你喜欢
The money circle boss, who is richer than Li Ka Shing, has just bought a building in Saudi Arabia
明星开店,退,退,退
Blue bridge: sympodial plant
Load test practice of pingcode performance test
线上MySQL的自增id用尽怎么办?
为啥有些线上演唱会总是怪怪的?
Superscalar processor design yaoyongbin Chapter 5 instruction set excerpt
Machine learning concept drift detection method (Apria)
【Hot100】32. Longest valid bracket
Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
随机推荐
TCP两次挥手,你见过吗?那四次握手呢?
Superscalar processor design yaoyongbin Chapter 7 register rename excerpt
Lua emmylua annotation details
Stars open stores, return, return, return
【每日一题】871. 最低加油次数
What if Kaili can't input Chinese???
2022 national CMMI certification subsidy policy | Changxu consulting
超标量处理器设计 姚永斌 第5章 指令集体系 摘录
uni-app与uviewUI实现仿小米商城app(附源码)
Pytorch深度学习之环境搭建
中断的顶半部和底半部介绍以及实现方式(tasklet 和 工作队列)
正则表达式
[211] go handles the detailed documents of Excel library
Machine learning concept drift detection method (Apria)
同事悄悄告诉我,飞书通知还能这样玩
怎么开户才是安全的,
About the pit of firewall opening 8848 when Nacos is started
2022年DCMM认证全国各地补贴政策汇总
一直以为做报表只能用EXCEL和PPT,直到我看到了这套模板(附模板)
明星开店,退,退,退