- 博客(10)
- 收藏
- 关注
原创 重建二叉树【每日一练】
前序遍历的第一个就是当前根节点,然后再在中序遍历中找出根节点位置,划分左右子树并递归建树。题目描述:输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。(红黑树、B+树、跳表)。后者需要事先建立好数据结构,会带来额外的空间开销。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。优化的关键在于如何快速在中序遍历中找出根节点位置。需要快速查找的情况,可以考虑使用。
2023-04-13 23:00:32 37
原创 字符串替换空格【每日一练】
C++ 标准库没有提供替换字符串的功能。只有算法库中的 replace 函数可以替换字符。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。boost 库里面提供了字符串替换功能。
2023-04-08 10:43:23 64
原创 和为 s 的两个数字【每日一练】
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。对于有序的数组,第一反应是二分还有双指针。
2023-04-08 10:35:00 43
原创 翻转单词顺序【每日一练】
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。注意:请去除字符串开头和尾部的空格,而且当单词之间的空格多于一个,只需保留一个空格。方法二:在实际开发中更常用,可读性更强。注意:记得处理末尾空格。
2023-04-06 10:29:53 54
原创 n个骰子的点数【每日一练】
计算每个总和出现的次数可以用动态规划,数组 dp[i] 表示在当前骰子数下,总和为 i 的出现次数。每增加一个骰子,dp[i] 可以从上一个 dp 转移过来。这个问题可以先转化为求总点数之和对应的次数,然后用次数除以总次数(6^n) 就可以算出概率;
2023-04-05 09:26:04 72
原创 0~n-1中缺失的数字【每日一练】
我是习惯了使用【left right 闭区间+ left right 指针结束时同时指向目标值】这种模式。更加灵活的是随着题目变化来调整 left right 的区间含义以及结束条件,但我比较笨,还是只用这一招吧。查找的目标值就定为缺失数字的下一个元素;然后分析当目标值在 mid 左闭区间和右开区间的条件;最后还要考虑查找的元素是不是一定就在一开始划定的搜索区间中。固定了模式以后,就要根据题目要求设定好判断条件。例如这道题,先看题,发现它是。
2023-04-03 10:29:27 52
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人