题目描述 我们从二叉树的根节点 root 开始进行深度优先搜索。 在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。 如果节点只有一个子节点,那么保证该子节点为左子节点。 给 ...
分类:
其他好文 时间:
2020-06-18 10:29:35
阅读次数:
52
1014. 最佳观光组合 给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。 一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。 返回一对观光景点能取得的最高分 ...
分类:
其他好文 时间:
2020-06-17 11:06:48
阅读次数:
64
题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以 ...
分类:
其他好文 时间:
2020-06-16 20:20:47
阅读次数:
48
单调栈 思路: 遍历每一行,用dp记录每行元素与之前行所能形成的柱形图的高,之后用单调栈的方式找到每行最大矩形面积,单调栈方式参考84.柱形图中最大的矩形 代码: class Solution: def largestRectangleArea(self,heights: List[int]) -> ...
分类:
其他好文 时间:
2020-06-16 13:10:33
阅读次数:
56
1300. 转变数组后最接近目标值的数组和 这个题是昨天的每日一题,昨天太忙了,没来得及写完。但是有了思想,本地上跑了几次发现跑出来的答案又误差就溜掉了。 今天有空了就来填一下坑。 class Solution { public int findBestValue(int[] arr, int ta ...
分类:
编程语言 时间:
2020-06-15 12:32:22
阅读次数:
57
双指针 思路: 创建一个空的头结点dummy,头节点的下一节点是head。用cur指向当前要处理去重的节点,pre指向上一个完成去重的节点。初始状态pre = dummy,cur = pre.next。开始对cur进行处理,如果cur.next.val == cur.val,while遍历更新cur ...
分类:
编程语言 时间:
2020-06-15 12:15:09
阅读次数:
58
直接法 思路: 将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。 代码: # Definition for singly-linked list. # class ListNode: # ...
分类:
编程语言 时间:
2020-06-15 12:01:15
阅读次数:
55
一、题目: 暴力法: 1、value 从target均值开始,对数组求和 2、直到数组和大于等于target; 3、数组中每个数均小于等于target 均值,value再增加数组和也是不会变的。 数组和s =target 或是 s = sum(arr)(等于最初数组和)直接返回 value clas ...
分类:
其他好文 时间:
2020-06-15 00:03:33
阅读次数:
64
题目链接 这题我开始一直在想如何在数组上dp操作搜索区间, 很蠢, 实际上用二分查找的方法可以很快的解决 首先我们通过一个函数判断第x天是否符合题意, 如果x天可以做出m束花, 那么大于m的天数必然可以. 从这里便可以看出其符合二分搜索的特性 : 答案在一个固定区间内; 可能查找一个符合条件的值不是 ...
分类:
其他好文 时间:
2020-06-14 16:45:45
阅读次数:
58
回溯法 思路: 创建一个二维数组mark用来记录用过的位置,先遍历数组找到和单词第一个字母相同的元素,在mark中标记此元素,从此元素开始进行回溯,看上下左右是否能找到单词第二个字符,如果能找到,mark中标记对应位置,继续进行回溯,直到找到单词所有字符为止,如果没有找到,则返回False。 代码: ...
分类:
其他好文 时间:
2020-06-14 15:09:36
阅读次数:
66