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)的面积。但是,当上方或下方有块时,需要减去相应面积。 当相邻位置有方块时,...

Leetcode PHP题解--D64 292. Nim Game

D64 292. Nim Game 题目链接 292. Nim Game 题目分析 假设你和朋友玩一个捡石头的游戏,你和朋友轮流拿1~3颗石头。拿到最后一颗石头的一方为剩方。第一轮由你开始捡石头。 同时假设你和你的朋友都足够聪明,每次都能采取最优策略。 现给定一个石头数量,判断你最终是否能取得胜利。 思路 我们先从少一点开始推广到n个石头。 如果有1~3颗石头,因为规定了是你开始、还假设...

Leetcode PHP题解--D63 917. Reverse Only Letters

D63 917. Reverse Only Letters 题目链接 917. Reverse Only Letters 题目分析 给定一个包含符号的字符串,仅倒转字母的出现顺序,不改变符号的出现位置。 思路 先把字符串分成字母和符号两部分,保留下标。 抽离字母数组的键和值,对值部分进行倒转,合并到键数组中。 再覆盖原数组中对应键即可。 最终代码 ...

Leetcode PHP题解--D62 976. Largest Perimeter Triangle

D62 976. Largest Perimeter Triangle 题目链接 976. Largest Perimeter Triangle 题目分析 给定数字数组,任取三条边形成三角形,返回最大边长。 思路 对给定的数组进行降序排序,使最大的数字在前面。 取最大的前三条,判断任两边之和是否大于第三边。 是则返回周长即可。 最终代码 ...

Leetcode PHP题解--D61 953. Verifying an Alien Dictionary

D61 953. Verifying an Alien Dictionary 题目链接 953. Verifying an Alien Dictionary 题目分析 给定一个单词数组和一个字符串,判断给定的数组是否满足给定字符串的顺序。 思路 按给定字符串,替换成正常顺序的单词。 再判断sort之前和之后的数组是否相同。 最终代码 ...