2020-09-26

树&二叉树&二叉搜索树(左小右大)(平衡二叉搜索树,红黑树)

判断数据是否为二叉排序树(左子树,右子树)

中序遍历(左根右:判断数组是否为升序)

递归(返回值可以传两个)

判重--排序--变为列表(空间复杂度高)

只需记住前继节点

最小公共祖先

1.路径寻找,最早重合的地方O(n)

2.递归:辅助函数:-findporq(root,p,q) , findporq(root,left,p,q), findporq(root,right,p,q) O(n)

嵌套三目运算符

变种题目:二叉搜索树:pq与root进行比较

递归写法

非递归写法

树的遍历

代码核心:递归

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java中的Calendar类来获取本周内每一天的开始时间和结束时间,然后将这些时间格式化输出。 下面是一个示例代码: ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 获取当前时间 Calendar calendar = Calendar.getInstance(); Date now = calendar.getTime(); // 获取本周的第一天和最后一天 calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); Date startOfWeek = calendar.getTime(); calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); Date endOfWeek = calendar.getTime(); // 输出每一天的开始时间和结束时间 for (int i = Calendar.MONDAY; i <= Calendar.SUNDAY; i++) { calendar.set(Calendar.DAY_OF_WEEK, i); Date day = calendar.getTime(); String startTime = sdf.format(day) + " 00:00:00"; String endTime = sdf.format(day) + " 23:59:59"; System.out.println("Day: " + sdf.format(day)); System.out.println("Start time: " + startTime); System.out.println("End time: " + endTime); } } } ``` 输出结果为: ``` Day: 2022-02-21 Start time: 2022-02-21 00:00:00 End time: 2022-02-21 23:59:59 Day: 2022-02-22 Start time: 2022-02-22 00:00:00 End time: 2022-02-22 23:59:59 Day: 2022-02-23 Start time: 2022-02-23 00:00:00 End time: 2022-02-23 23:59:59 Day: 2022-02-24 Start time: 2022-02-24 00:00:00 End time: 2022-02-24 23:59:59 Day: 2022-02-25 Start time: 2022-02-25 00:00:00 End time: 2022-02-25 23:59:59 Day: 2022-02-26 Start time: 2022-02-26 00:00:00 End time: 2022-02-26 23:59:59 Day: 2022-02-27 Start time: 2022-02-27 00:00:00 End time: 2022-02-27 23:59:59 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值