Leetcode PHP题解--D71 788. Rotated Digits

D71 788. Rotated Digits 题目链接 788. Rotated Digits 题目分析 当一个数字180度旋转后,不等于原来的数字,那么我们称它是一个好数字。 例如,数字0、1和8在旋转180度后,等于它本身。2和5旋转后为对方。6和9也是如此。而其他数字在旋转后不等于任何数字。 给定一个数字,返回从1到这个数字之间有多少个好数字。 思路 用range函数生成1到给定...

Leetcode PHP题解--D70 784. Letter Case Permutation

D70 784. Letter Case Permutation 题目链接 784. Letter Case Permutation 题目分析 给定一个字符串。返回将其字母部分替换成大小写分别可能出现的所有字符。 例如,字符串为a时,返回a和A。 字符串为Ab时,返回['Ab','AB','ab','aB']。 思路 先找到字符串中字母出现的位置。 对于每个出现字母的位置,将小写和大写两...

Leetcode PHP题解--D69 258. Add Digits

D69 258. Add Digits 题目链接 258. Add Digits 题目分析 给定一个数字,给每一位相加,对得到结果进行相同的操作。直到最终结果为一位数。 题目还要求尽量用O(1)的时间复杂度。 思路 暂时没想出O(1)复杂度的,就先用正常的while...do循环完成。 讲数字拆分成数组,用求和函数计算和。判断求和后的值是否大于10。大于则重复操作。小于则退出并返回。 最...

Leetcode PHP题解--D68 283. Move Zeroes

D68 283. Move Zeroes 题目链接 283. Move Zeroes 题目分析 给定一个整数数组,将值为0的元素移动到数组末尾,而不改动其他元素出现的顺序。 思路 计算总共有多少个元素。 再在去0后的元素末尾填充0到计算出的数组长度。 最终代码 ...

Leetcode PHP题解--D67 485. Max Consecutive Ones

D67 485. Max Consecutive Ones 题目链接 485. Max Consecutive Ones 题目分析 给定一个二进制数组(只含有0和1的数组),返回最长的1串。 思路 逐个遍历,若为1则计数。遇到0则判断当前计数是否大于之前记录的最大数字,并置零。 返回最大数。 最终代码 ...

Leetcode PHP题解--D66 896. Monotonic Array

D66 896. Monotonic Array 题目链接 896. Monotonic Array 题目分析 给定一个数字数组,判断是否单调递增或递减。 单调递增即,对于第n位数字,其后面的数组都大于或等于它。 单调递减则为,其后面的数组都小于它。 思路 先要找到头两个不同的数字,用来判断该数组是单调递增还是递减。 判断后,再逐个遍历。若为单调递增,那么不能存在小于前一个数字的值。若为...

Leetcode PHP题解--D65 892. Surface Area of 3D Shapes

D65 892. Surface Area of 3D Shapes 题目链接 892. Surface Area of 3D Shapes 题目分析 给定一个三维数组,返回所行程柱状体的表面积。 思路 三维数组中,$arr[$i][$j]的值表示在该点上柱状体的高度。 因此,对每一个值,需要算做6份(1*1*1)的面积。但是,当上方或下方有块时,需要减去相应面积。 当相邻位置有方块时,...