Leetcode PHP题解--D52 496. Next Greater Element I

D52 496. Next Greater Element I 题目链接 496. Next Greater Element I 题目分析 给定两个数组,其内元素不重复。 数组1是数组2的子集,返回每个在数组1中的元素在数组2对应位置以右最大的元素。 思路 只能逐个遍历吧。 最终代码 ...

Leetcode基础刷题之PHP解析( 98. Validate Binary Search Tree)

思路有两种,二叉查找树的特点就是左子树上的结点都小于根结点,右子树上的结点都大于根节点。所以有两个方向,可以分别递归的判断左子树,右子树。或者拿左子树上的最大值,右子树上的最小值分别对应根结点进行判断。...

Leetcode基础刷题之PHP解析( 144. 145)

前序遍历,先访问根结点,然后在访问左子树,最后访问右子树。可以利用栈的特点,这里我结合了队列和栈的特点来实现。先压入树,取出根节点。先把根节点值push到队列中,然后把右子树压入栈中,最后压入左子树。返回队列。当然你可以调整成你想要的实现方式。...

Leetcode PHP题解--D50 933. Number of Recent Calls

D50 933. Number of Recent Calls 题目链接 933. Number of Recent Calls 题目分析 这个题目说实在的,看得我一脸蒙蔽。 返回自3000毫秒到现在为止ping的次数(包括当前ping)。 调ping函数时,传入的参数t为当前ping的毫秒数。 思路 其实是说,返回前3000毫秒内ping的次数。 把每次ping的毫秒数存起来,然后往回...

Leetcode PHP题解--D49 821. Shortest Distance to a Character

D49 821. Shortest Distance to a Character 题目链接 821. Shortest Distance to a Character 题目分析 给定一个字符串s和一个字符c。 返回字符串中每一个字符离给定的字符c的最短距离。 思路 先用array_keys找到字符C在字符串S中的位置。 如果当前遍历到的位置是在下一个出现的字符C之前,那么直接相减下标即...

Leetcode PHP题解--D48 985. Sum of Even Numbers After Queries

D48 985. Sum of Even Numbers After Queries 题目链接 985. Sum of Even Numbers After Queries 题目分析 给定一个初始数组A,再给定一个二维操作数组Q。 操作数组里的每一个值是一个数组。其第一个值代表要添加的数。第二个值代表需要操作的数字在数组A中的下标。 也即,需要对A[Q[1]]加A[Q[0]。 结果中第i...

Leetcode PHP题解--D47 868. Binary Gap

D47 868. Binary Gap 题目链接 868. Binary Gap 题目分析 给定一个数字,计算其二进制表示中,出现的两个1最大距离。 思路 当然是先转换成二进制了。再进行遍历。 当只有一个1时,返回0。因为只有一个1是没办法比较距离的。 逐个遍历每位。每位都给距离+1。 当出现1时,判断当前距离是否大于记录的最大值。是则覆盖。再把距离置零。 最后判断当只有一个1时,直接返...

Leetcode基础刷题之PHP解析(337. House Robber III)

最后的目的还是为了算出最多能抢的金额数。除了根节点,每一个结点只有一个父结点,能直接相连的两个结点不能同时抢,比如说图1这种情况,你要是抢了根节点,那么直接相连的左右子结点你就不能抢。所以你要么抢根节点的左右子结点,要么根节点+根节点->left->right+根节点->right->right....