IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> ARTS挑战第十六周 -> 正文阅读

[数据结构与算法]ARTS挑战第十六周

Algorithm

【回溯法】剑指 Offer 34. 二叉树中和为某一值的路径

选择列表:对于当前节点来说,选择左右两个节点是其选择列表
路径:根节点一定在路径中,因此需要事先加入trace中;
结束条件:当前节点是叶子节点

【后序遍历】 124. 二叉树中的最大路径和

helper 函数返回以root为终点的单边最大路径和:

|-- 先计算分别以左右子节点为终点的最大路径和分别为left,right

|-- helper 函数根据left、right的正负以及大小,返回最大单边路径和

|-- 顺便记录以root为根节点的带拐(人字形)最大路径和(全局变量)

【后序+先序】297. 二叉树的序列化与反序列化

序列化【后序遍历】+ 反序列化【前序遍历】
需要注意的是,序列化对于nullptr的节点使用特殊字符占位。
反序列化则使用全局指针,从左向右逐个遍历。

【DFS】341. 扁平化嵌套列表迭代器

dfs 方法遍历嵌套列表,函数输入不同于一般的树遍历(根节点),而是一个列表

|–对于列表中的所有元素

? |–当遍历到叶子节点时,将叶子节点加入结果集

? |-- 否则当前元素还是一个列表,则需要递归处理这个列表

对于hasnext 方法,判断 当前迭代器是否是end()即可

对于next 方法,则返回当前迭代器的值并位移一位

【翻转链表】25. K 个一组翻转链表

25. K 个一组翻转链表 递归过程,函数返回的是反转后的head节点,处理完前k个元素后,对于后面n-k个元素的处理,只是链表长度变化了,处理逻辑完全一样,只需要将前k个元素的最后一个元素指向 后面n-k个元素反转后的头节点

? 函数出口:当前链表长度小于k,则不用处理,直接返回头节点。边界条件,当前节点为空。

? 函数逻辑:

? |–如果当前节点为空,则返回

? |–找出第k+1个节点,如果找不到则说明长度不够,则直接返回

? |–反转从head到第k个节点的链表(prev初始为null)

? |–将head->next = reverseKGroup(第K+1个节点,k)

? |–返回head

Review

常见限流算法

image-20210724234405062

python time.time vs time.clock

在unix-based os上,time.time 是wall clock 时间,time.clock是cpu时间(在当前进程上花的cpu时间)

>>> import time
>>> print(time.time(), time.clock())
1359147652.31 0.021184
>>> time.sleep(1)
>>> print(time.time(), time.clock())
1359147653.31 0.02168

在windows os 上,time.time 和 time.clock 都是wall clock时间

>>> import time
>>> print(time.time(), time.clock())
1359147763.02 4.95873078841e-06
>>> time.sleep(1)
>>> print(time.time(), time.clock())
1359147764.04 1.01088769662

Tips

  1. git reset 命令 取消所有的commit之前的 git add操作,git reset <file_name>取消指定文件的add
  2. git checkout file 命令则是使用暂存区中的文件覆盖
  3. git pull 免密钥,https模式中,提前在.git-credentials文件中配置密钥时,密码不能包含@字符,否则识别不出来

Share

  1. git clone push 免密钥两种方式
  2. jupyter lab 插件安装
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:34:33  更:2021-08-08 11:34:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 2:42:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计